mysql duplicate key on for deleted key

vybvopom  于 2021-06-24  发布在  Mysql
关注(0)|答案(0)|浏览(308)

我们有一个如下结构的表格,

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' .
我完全搞不懂我为什么会犯这个错误。在此方面的任何帮助都将不胜感激。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题