我们有一个如下结构的表格,
CREATE TABLE `DateTracker` (
`ReferenceType` varchar(50) NOT NULL,
`Date` date NOT NULL,
`LastRunDate` datetime DEFAULT NULL,
PRIMARY KEY (`ReferenceType`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
此表将根据其他表上生成的数据和数据可用性的最后日期进行更新。
例如,如果我们有一个名为users的表,
CREATE TABLE `User` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`Username` varchar(50) NOT NULL,
`Date` date NOT NULL
PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `user` (`Id`,`Username`,`Date`) VALUES (1,'user1','2018-06-22');
INSERT INTO `user` (`Id`,`Username`,`Date`) VALUES (2,'user2','2018-06-24');
然后,由于最后处理的条目的日期为 '2018-06-24'
,我们会在 DateTracker
表A,
INSERT INTO `DateTracker` (`ReferenceType`,`Date`,`LastRunDate`) VALUES ('User','2018-06-24','2018-06-28 12:56:37');
现在当我们删除 DateTracker
表中,生成此数据的脚本将创建一个新条目,并在脚本进一步运行时更新。
问题是,有时它会表现出来 "1062: Duplicate entry 'User' for key 'PRIMARY'"
当我们在删除之后插入它时,但是在 ReferenceType
列 'User'
.
我完全搞不懂我为什么会犯这个错误。在此方面的任何帮助都将不胜感激。
暂无答案!
目前还没有任何答案,快来回答吧!