sql >> Database >  >> RDS >> Mysql

Bij dubbele sleutelupdate - meerdere kolommen

Nou, dit is oud. Maar u hoeft natuurlijk maar eenmaal een waarde op te geven , is er geen reden om het een tweede keer toe te voegen aan de zoekopdracht (wat handig is voor meerdere invoegingen of voorbereide instructies):

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

Wat als voordeel heeft dat het nog steeds werkt voor een multiple insert statement:

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) [,...]


  1. SELECTEER de ene kolom als de andere nul is

  2. Hoe ontsnap ik aan een gereserveerd woord in Oracle?

  3. ojdbc14.jar versus ojdbc6.jar

  4. Maak een gekoppelde server in SQL Server (T-SQL-voorbeeld)