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