gpt4 book ai didi

mysql - alter table 语句将重复项插入到另一个表中

转载 作者:行者123 更新时间:2023-11-29 13:37:04 25 4
gpt4 key购买 nike

我有一个表,其中有一个列名称为 SP varchar(10) NOT NULL。我希望该列始终是唯一的,因此我在该列上创建了唯一索引。我的表架构如下:

CREATE TABLE IF NOT EXISTS `tblspmaster` (
`CSN` bigint(20) NOT NULL AUTO_INCREMENT,
`SP` varchar(10) NOT NULL,
`FileImportedDate` date NOT NULL,
`AMZFileName` varchar(50) NOT NULL,
`CasperBatch` varchar(50) NOT NULL,
`BatchProcessedDate` date NOT NULL,
`ExpiryDate` date NOT NULL,
`Region` varchar(50) NOT NULL,
`FCCity` varchar(50) NOT NULL,
`VendorID` int(11) NOT NULL,
`LocationID` int(11) NOT NULL,
PRIMARY KEY (`CSN`),
UNIQUE KEY `SP` (`SP`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=10000000000 ;

现在我希望如果有人尝试插入重复记录,那么该记录应该插入到辅助表名称tblDuplicate中。

我已经解决了这个问题MySQL - ignore insert error: duplicate entry但我不确定是否可以代替

INSERT INTO tbl VALUES (1,200) ON DUPLICATE KEY UPDATE value=200;

我可以将重复的行插入到另一个表中吗?

主表方案或索引列需要进行哪些更改?

**注意:数据将通过导入 Excel 或 csv 文件来插入,Excel 文件通常包含 500k 到 800k 记录,但只有一列 **

最佳答案

我相信您想为此使用触发器。这是关于 triggers 的 MySQL 引用章节.

使用插入前触发器。在触发器中,检查该行是否重复(可能是 count(*),其中键列值 = 要插入的值)。如果该行重复,请执行插入到辅助表中的操作。

关于mysql - alter table 语句将重复项插入到另一个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18597988/

25 4 0