我有一个MySQL表定义如下:
create table MyTable2 (
ID bigint unsigned NOT NULL AUTO_INCREMENT,
Field2 varchar(4096) CHARACTER SET utf8 NOT NULL,
Field3 varchar(256) CHARACTER SET utf8 NOT NULL,
Field4 varchar(64) NOT NULL,
ForeignID bigint unsigned NOT NULL,
DateAdded TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY(ID),
FOREIGN KEY fk_ForeignID(ForeignID) REFERENCES MyTable1(ID)
ON UPDATE CASCADE ON DELETE RESTRICT);
我想插入一堆新记录。但是,如果存在Field2,Field3,Field4和ForeignID匹配的记录,我想忽略。 IOW,如果记录匹配但不是DateAdded字段或ID(自动添加),那么我想忽略插入。但是我想添加这4个字段不匹配的地方。
单独使用MYSQL INSERT命令是否可行,或者我需要做一些魔术,我将现有记录中的值与这4个字段进行比较?
我尝试使用INSERT IGNORE INTO设置匹配这4个字段的记录,新记录添加了一个新的ID和DateAdded字段,这是 NOT 我想要的。
请告知。
谢谢!