我有一个表,其中有一个带有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条记录,但只有一列**