Mysql
 sql >> Base de données >  >> RDS >> Mysql

Lors de la mise à jour de la clé en double - Plusieurs colonnes

Eh bien, c'est vieux. Mais bien sûr, vous n'avez besoin de fournir une valeur qu'une fois , il n'y a aucune raison de l'ajouter une deuxième fois dans la requête (ce qui est pratique pour plusieurs insertions ou instructions préparées) :

INSERT INTO table1
  (col1, col2, col3, col4)
VALUES
  ('val1', 'val2', 'val3', 'val4')
ON DUPLICATE KEY UPDATE
  col2=VALUES(col2),
  col3=VALUES(col3) [,...]

Ce qui a pour avantage qu'il fonctionnera toujours pour une instruction à insertion multiple :

INSERT INTO table1
  (col1, col2, col3, col4)
VALUES
  ('val1', 'val2', 'val3', 'val4'),
  ('val5', 'val6', 'val7', 'val8'),
  ('val9', 'val10', 'val11', 'val12')
ON DUPLICATE KEY UPDATE
  col2=VALUES(col2),
  col3=VALUES(col3) [,...]