批量insert

表结构如下:

CREATE TABLE `country` (
  `ID` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
  `NAME` varchar(255) NOT NULL COMMENT '国家名称',
  `CODE` varchar(255) NOT NULL COMMENT '国家编码',
  PRIMARY KEY (`ID`),
  UNIQUE KEY `u_code` (`CODE`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8 COMMENT='国家表'

在`CODE`行上存在唯一索引,为了避免唯一索引冲突导致的 SQL 异常,可以使用以下语句语句进行 insert操作:

INSERT INTO country ( `NAME`, `CODE` )
VALUES
	( "Test", "1" )
ON DUPLICATE KEY UPDATE `CODE` = `CODE`

而上述语句也可以用于批量insert中:

INSERT INTO country ( `NAME`, `CODE` )
VALUES
	( "Test", "1" ),
	( "Test2", "1" ) 
ON DUPLICATE KEY UPDATE `CODE` = `CODE`

最后更新于