J'ai table - config . Schéma:
config_name | config_value
Et je voudrais mettre à jour plusieurs enregistrements en une seule requête. J'essaye comme ça:
UPDATE config
SET t1.config_value = 'value'
, t2.config_value = 'value2'
WHERE t1.config_name = 'name1'
AND t2.config_name = 'name2';
mais cette requête est fausse :(
Pouvez-vous m'aider?
Réponses:
Essayez l'une des syntaxes de mise à jour multi-tables
Voici la démo de SQLFiddle
ou mise à jour conditionnelle
Voici la démo de SQLFiddle
la source
config AS t1
là oùAS
est facultatif.Vous pouvez l'accomplir avec INSERT comme ci-dessous:
Cela permet d'insérer de nouvelles valeurs dans la table, mais si la clé primaire est dupliquée (déjà insérée dans la table), les valeurs que vous spécifiez seraient mises à jour et le même enregistrement ne serait pas inséré une deuxième fois.
la source
dans mon cas, je dois mettre à jour les enregistrements qui sont plus de 1000, pour cela au lieu de frapper la requête de mise à jour chaque fois que je préfère cela,
78,77 sont les identifiants d'utilisateur et pour ces identifiants d'utilisateur, je dois mettre à jour respectivement base_id 999 et 88.Cela fonctionne pour moi.
la source
peut-être que pour quelqu'un ce sera utile
pour Postgresql 9.5 fonctionne comme un charme
ce SQL met à jour l'enregistrement existant et en insère un nouveau (2 en 1)
la source
La solution de Camille a fonctionné. Je l'ai transformé en une fonction PHP de base, qui écrit l'instruction SQL. J'espère que ceci aide quelqu'un d'autre.
la source
au lieu de cela
vous pouvez utiliser
la source
Exécutez le code ci-dessous pour mettre à jour n nombre de lignes, où l'ID parent est l'ID dont vous souhaitez obtenir les données et les ID enfants sont les ID dont vous devez mettre à jour, il vous suffit donc d'ajouter l'ID parent et les ID enfants à mettre à jour toutes les lignes dont vous avez besoin en utilisant un petit script.
la source
En supposant que vous ayez la liste des valeurs à mettre à jour dans une feuille de calcul Excel avec config_value dans la colonne A1 et config_name dans B1, vous pouvez facilement y écrire la requête en utilisant une formule Excel comme
=CONCAT("UPDATE config SET config_value = ","'",A1,"'", " WHERE config_name = ","'",B1,"'")
la source
Exécutez le code ci-dessous si vous souhaitez mettre à jour tous les enregistrements dans toutes les colonnes:
et si vous souhaitez mettre à jour toutes les colonnes d'une ligne particulière, exécutez le code ci-dessous:
la source