相关关键词
关于我们
最新文章
完美解决Thinkphp3.2中插入相同数据的问题
发布日期:2017-08-01 00:00:00
58
问题描述
今天在使用TP3.2插入数据的时候,为了避免插入相同的数据(所谓相同的数据,其主键相同或者是唯一索引的字段相同),我创建的索引如下图,主键索引为自增字段,不可能出现重复,即唯一索引可能会出现重复,我希望的是uid,year,mounth,day 这三个字段出现相同的话,就更新当前记录。
问题解决办法
在之前面对这样的问题的时候,我们知道,MySQL提供了ON DUPLICATE KEY UPDATE或者REPLACE INTO来解决。
使用ON DUPLICATE KEY UPDATE
插入数据之前,表中就一条记录,如下图
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();