MYSQL INSERT IGNORE INTO:忽略两列?

时间:2016-12-08 16:17:33

标签: mysql database insert duplicates ignore

我有一个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 我想要的。

请告知。

谢谢!

0 个答案:

没有答案