sql中的duplicate的使用

2021-09-07 12:38:19 字數 825 閱讀 8799

應用場景:有時候在做一些系統設定功能的時候,系統在第一次使用,或者初始化的時候,該設定資訊並沒有存在於資料庫中,或者該系統設定資訊永遠只儲存一條,沒有必要為增加和修改這條資訊而分別編寫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,實際運用中也可以使用聯合主鍵

sql中的duplicate的使用

應用場景 有時候在做一些系統設定功能的時候,系統在第一次使用,或者初始化的時候,該設定資訊並沒有存在於資料庫中,或者該系統設定資訊永遠只儲存一條,沒有必要為增加和修改這條資訊而分別編寫insert和update語句,只需要用sql中的duplicate就能把問題解決。假設有乙個系統設定表如下 cre...

SQL中的作業

這幾天,一直都在做有關於 使用者的管,原本同事不想對使用者的資料進行物理刪除,但是有關聯的表有三張,查詢出來的時候會出現記錄重複的現向,所以只能對附表進行物理刪除,對主表中的資料進行暫時性的保留,但時間長了對資料的冗餘量那真是不太可觀,所以想辦法要對資料進行定期的清楚.在csdn中找到的方法,收到這...

SQL中的事務

sql中的事務 事務 begin transaction 開始事務 commit transaction 提交事務 rollboack transaction 回滾事務 set implicit ransaction on 隱式事務 update customer set nickname nick...