第一种方式: 使用 union
但是会导致 插入 n条数据 主键自增n+1
举例:id为自增主键
先清空数据表
下面的语句一次插入2条。
第一次运行 第一条id =1 ,第二条id=2
第二次运行 第三条id =4 ,第四条id=5
第三次运行 第五条id =7 ,第六条id=8
但是会导致 插入 n条数据 主键自增n+1
举例:id为自增主键
先清空数据表
下面的语句一次插入2条。
第一次运行 第一条id =1 ,第二条id=2
第二次运行 第三条id =4 ,第四条id=5
第三次运行 第五条id =7 ,第六条id=8
INSERT INTO `versionfileinfo` ( vid, buildNo, displayVersion, fileKey, fileSize, fileUrl, description, checkType, checkCode, createTime, lastUpdateTime, isActive, ts ) VALUES ( 1, 1, "显示版本", NULL, NULL, "www.asdasd.com", "描述", "a", "b", 123, 123123, 1, 123123 ), ( 1, 2, "显示版本", NULL, NULL, "www.asdasd.com", "描述", "a", "b", 123, 123123, 1, 123123 )
第二种方式:不使用union
INSERT INTO `versionfileinfo` ( vid, buildNo, displayVersion, fileKey, fileSize, fileUrl, description, checkType, checkCode, createTime, lastUpdateTime, isActive, ts ) VALUES ( 1, 1, "显示版本", NULL, NULL, "www.asdasd.com", "描述", "a", "b", 123, 123123, 1, 123123 ), ( 1, 2, "显示版本", NULL, NULL, "www.asdasd.com", "描述", "a", "b", 123, 123123, 1, 123123 )
建表语句:
CREATE TABLE versionfileinfo ( id INT NOT NULL PRIMARY KEY auto_increment, vid INT NOT NULL COMMENT "版本信息id" , buildNo INT NOT NULL COMMENT "版本号" , displayVersion VARCHAR (50) NOT NULL COMMENT "显示版本" , fileKey VARCHAR (100) NOT NULL COMMENT "文件标识" , fileSize BIGINT NOT NULL COMMENT "文件大小" , fileUrl VARCHAR (1000) NOT NULL COMMENT "文件存放url" , description VARCHAR (500) COMMENT "描述" , checkType VARCHAR (50) COMMENT "校验方式" , checkCode VARCHAR (500) COMMENT "校验码" , createTime BIGINT NOT NULL COMMENT "秒级时间戳" , lastUpdateTime BIGINT NOT NULL COMMENT "秒级时间戳" , isActive bit NOT NULL COMMENT "删除标识" , ts BIGINT NOT NULL COMMENT "毫秒级时间戳" ) ENGINE = INNODB DEFAULT CHARSET utf8;
求大大指点,主键额外增加是怎么回事呢?
解决方案
33
看了下资料,具体的原理本人也不太明白。大致给你个思路。
这是innodb的问题,使用MyISAM就不会这样。
其实主要就是这两个在处理AUTO_INCREMENT列时处理的方式不同。
详情请百度或Google
这是innodb的问题,使用MyISAM就不会这样。
其实主要就是这两个在处理AUTO_INCREMENT列时处理的方式不同。
详情请百度或Google
AUTO_INCREMENT列在InnoDB里怎么样工作
推荐个文章 http://blog.sina.com.cn/s/blog_502c8cc40100kift.html
可以拿来做参考。
再给个解决方案 : 每次执行完sql , flush privileges;
33
再给你一种解决方案 innodb_autoinc_lock_mode innodb_autoinc_lock_mode当innodb_autoinc_lock_mode = 0时正常。