摘要
mysql支持批量插入,即insert into values(),().. ,可以一次插入多条数据,那么这一次插入是否为原子操作呢?
通过测试验证一下mysql一次批量插入结果是不是要么全部插入成功,要么全部插入失败
建立测试表
建立一个带unique key的表作为实验表,当插入重复uk的数据mysql会插入失败
CREATE TABLE `uk_test` (
`id` bigint(32) NOT NULL AUTO_INCREMENT,
`ip` varchar(32) NOT NULL,
`gmt_create` datetime NOT NULL COMMENT 'create time',
`gmt_modify` datetime NOT NULL COMMENT 'modify time',
PRIMARY KEY (`id`),
UNIQUE KEY `uniq` (`ip`)
) ENGINE=InnoDB AUTO_INCREMENT=106 DEFAULT CHARSET=utf8
用ip列建立了uk
测试批量插入
case 1.当一次插入的多条数据中,存在相同uk的情况:
select * from uk_test;
+-----+---------+---------------------+---------------------+
| id | ip | gmt_create | gmt_modify |
&