MySQLレコードが存在しない場合insert、レコードが存在する場合update

2369 ワード

INSERT INTO table (a,b,c) VALUES (1,2,3)
  ON DUPLICATE KEY UPDATE c=c+1;

INSERT ON DUPLICATE KEY UPDATE  
ON DUPLICATE KEY UPDATE, UNIQUE PRIMARY KEY , UPDATE。 , a UNIQUE, 1, :
mysql> INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1; 
mysql> UPDATE table SET c=c+1 WHERE a=1;  , 1; , 2。  : b , INSERT UPDATE :  mysql> UPDATE table SET c=c+1 WHERE a=1 OR b=2 LIMIT 1; 
a=1 OR b=2 , 。 , ON DUPLICATE KEY 。 
UPDATE VALUES(col_name) INSERT...UPDATE INSERT 。 , , UPDATE VALUES(col_name) col_name 。 。 VALUES() INSERT...UPDATE , NULL。  :  mysql> INSERT INTO table (a,b,c) VALUES (1,2,3),(4,5,6) ON DUPLICATE KEY UPDATE c=VALUES(a)+VALUES(b);  :  mysql> INSERT INTO table (a,b,c) VALUES (1,2,3)           -> ON DUPLICATE KEY UPDATE c=3;  mysql> INSERT INTO table (a,b,c) VALUES (4,5,6)           -> ON DUPLICATE KEY UPDATE c=9;
 

INSERT ... SELECT
INSERT ... ON DUPLICATE KEY UPDATE
INSERT ... ON DUPLICATE REPLACE