sql中的duplicate的使用


應用場景:有時候在做一些系統設置功能的時候,系統在第一次使用,或者初始化的時候,該設置信息並沒有存在於數據庫中,或者該系統設置信息永遠只保存一條,沒有必要為增加和修改這條信息而分別編寫insert和update語句,只需要用sql中的duplicate就能把問題解決。

假設有一個系統設置表如下

CREATE TABLE system_setings(
id BIGINT(20),
email INT,
message INT,
PRIMARY KEY (`id`)
)

當表創建時,就像剛才說的情況那樣,數據庫沒有任何系統設置的記錄,維護這個表只需要如下語句,就能夠完成記錄的新增和修改,是不是很方便。

INSERT INTO `system_setings`
(
unit_id,email,message
)
VALUE (3,0,1)
ON DUPLICATE KEY UPDATE
email=VALUES(email),
message=VALUES(message)

關鍵點:duplicate是根據唯一主鍵來判斷當前記錄是否存在,因此數據表必須有標識數據唯一性的主鍵,本例中的主鍵是id,實際運用中也可以使用聯合主鍵


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM