INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name [(col_name,...)]
VALUES ({expr | DEFAULT},...),(...),...
[ ON DUPLICATE KEY UPDATE col_name=expr, ... ]
或:
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name
SET col_name={expr | DEFAULT}, ...
[ ON DUPLICATE KEY UPDATE col_name=expr, ... ]
或:
INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name [(col_name,...)]
SELECT ...
[ ON DUPLICATE KEY UPDATE col_name=expr, ... ]註釋 :INSERT 用於向一個已有的表中插入新行。INSERT...VALUES 和INSERT...SET 形式的語句根據明確指定的值插入行。INSERT...SELECT 形式的語句插入從其它表中選出的行
如果指定了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;