我正在使用带有JDBC...the的MySql,下面是我的表定义
CREATE TABLE `A` (
`id` int(255) NOT NULL AUTO_INCREMENT,
`type` varchar(255) NOT NULL,
`value` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `unq` (`type`(50),`value`(50))
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;目前,我正在使用语句,以便使用RETURN_GENERATED_KEYS选项向该表批量插入行,以便将id与其他表相关联。
我希望能够执行该操作,但当/如果重复条目发生时(类型和值的相同组合)继续事务,就像没有发生任何事情,但仍然获得生成的键,如果出现重复条目,则检索现有的键。
谢谢
发布于 2012-04-06 20:48:59
使用IGNORE关键字
INSET IGNORE ....正如Mysql中所引用的
如果使用IGNORE关键字,则执行INSERT语句时发生的错误将被视为警告。例如,在不使用IGNORE的情况下,重复表中现有唯一索引或主键值的行将导致重复键错误,并且语句将中止。如果使用IGNORE,仍然不会插入行,但不会发出错误。
替代语法
https://stackoverflow.com/questions/10043649
复制相似问题