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