今天我們做的推斷插入用途MySQL于ON DUPLICATE KEY UPDATE。現在,Mark下面!
假設你想做的事,再有就是在數據庫中插入數據沒有數據、如果有數據更新數據,然后你可以選擇ON DUPLICATE KEY UPDATE。
ON DUPLICATE KEY UPDATE可以在UNIQUE索引或PRIMARY KEY存在的情況下對舊行運行UPDATE操作。
比如:假設列a被定義為UNIQUE,而且包括值1。則下面兩個語句具有同樣的效果:
INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c = c + 1,b = b - 1;
UPDATE table SET c = c + 1,b = b - 1 WHERE a = 1;
比如:如果INSERT多行記錄(如果 a 為主鍵或 a 是一個 UNIQUE索引列):?
INSERT INTO TABLE (a,c) VALUES (1,3),(1,7) ON DUPLICATE KEY UPDATE c = c + 1;
運行后,c 的值會變為 4 (第二條與第一條反復, c 在原值上+1)。
INSERT INTO TABLE (a,c) VALUES (1,3),(1,7) ON DUPLICATE KEY UPDATE c = VALUES(c);
運行后,c 的值會變為 7 (第二條與第一條反復, c 在直接取反復的值7)。
注意:ON DUPLICATE KEY UPDATE僅僅是MySQL的特有語法,并非SQL標準語法!?
官方文檔參照:dev.mysql.com/doc/refman/5.1/zh/sql-syntax.html#insert
版權聲明:本文博主原創文章,博客,未經同意不得轉載。