相關關鍵詞
關于我們
最新文章
完美解決Thinkphp3.2中插入相同數(shù)據(jù)的問題

問題描述
今天在使用TP3.2插入數(shù)據(jù)的時候,為了避免插入相同的數(shù)據(jù)(所謂相同的數(shù)據(jù),其主鍵相同或者是唯一索引的字段相同),我創(chuàng)建的索引如下圖,主鍵索引為自增字段,不可能出現(xiàn)重復,即唯一索引可能會出現(xiàn)重復,我希望的是uid,year,mounth,day 這三個字段出現(xiàn)相同的話,就更新當前記錄。
問題解決辦法
在之前面對這樣的問題的時候,我們知道,MySQL提供了ON DUPLICATE KEY UPDATE或者REPLACE INTO來解決。
使用ON DUPLICATE KEY UPDATE
插入數(shù)據(jù)之前,表中就一條記錄,如下圖
SQL語句如下,當插入記錄時候,與表中已有記錄相同,則更新改條記錄,否則插入記錄。
INSERT INTO `work_log` ( `uid`, `year`, `mounth`, `day`, `status` ) VALUES (1, 2016, 6, 3, 1) ON DUPLICATE KEY UPDATE `status` = VALUES (`status`), `updated_ts` = NOW();