1. 程式人生 > >MySQL api

MySQL api

使用 insert語句 user prim 方法 插入 ima primary date

今天看去年年中寫的代碼,留意到一個關鍵時刻能提高效率的api:on duplicate key update;

語法:

INSERT INTO INSERT INTO g_iot_user_building
()
VALUES()

ON DUPLICATE KEY UPDATE
a=‘a‘,
b=‘b‘;

當你想向某個表中插入數據,同時保證該條數據在表中不存在時,可使用上面這個方法;

值得註意的是,該方法是mysql特有,並不是sql通用,所以使用的時候需要區別使用;

使用場景:

調用釘釘人員相關接口,同步人員信息到本地數據庫,此時,需要註意的是 判斷釘釘接口返回的人員信息是否已存在於數據庫中,還是新加入的人員;

此時,如果使用輪詢去判斷,則稍顯繁瑣,可使用 on duplicate key update語法,

需要留心的是,需要為用戶的userid為設置UNIQUE索引(該鍵唯一,來源釘釘api),這樣,即可滿足:若數據庫已有該人員信息,則更新,若沒有該人員信息,則插入數據到表;

解釋:

如果在INSERT語句末尾指定了ON DUPLICATE KEY UPDATE,並且插入行後會導致在一個UNIQUE索引或PRIMARY KEY中出現重復值,則在出現重復值的行執行UPDATE;如果不會導致唯一值列重復的問題,則插入新行。

MySQL api