mysql AUTO_INCEREMENT关键字的疑点

mysql AUTO_INCEREMENT关键字的疑点

mysql AUTO_INCEREMENT关键字的疑问

有表如下:

users | CREATE TABLE `users` (

  `uid` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT ”,

  `user_class` tinyint(11) NOT NULL DEFAULT ‘0’ COMMENT ”,

  `user_login` varchar(50) NOT NULL DEFAULT ” COMMENT ”,

  `user_pass` varchar(50) NOT NULL DEFAULT ” COMMENT ”,

  `user_name` varchar(60) NOT NULL DEFAULT ” COMMENT ”,

  UNIQUE KEY `USER_LOGIN` (`user_login`),

  KEY `USER_NAME` (`user_name`),

  KEY `USER_CITY` (`user_city`)

) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 |

执行:

— 对应`uid`增1,比如这里是2

insert into users(user_login) values(‘小明’); 

 — 多次执行该语句返回1062错误,因为user_login有UNIQUE约束。

insert into users(user_login) values(‘小明’);

insert into users(user_login) values(‘小明’);

insert into users(user_login) values(‘小明’);

— 插入准确,但uid不是接着上次正确执行后的ID,即不是3,而是(2+错误语句执行的次数),得出结论,即使返回类似如1062错误未能成功插入数据的,uid AUTO_INCREMENT仍然也会+1。

insert into users(user_login) values(‘小红’); –这里的uid是6,而不是3.

求原理解析,如何做到在数据库层面让AUTO_INCREMNT字段连续。




自增字段,即使插入不成功,也会+1,插入结束后,再增加自增字段

OR

插入有自增字段的表中




本身这个自增id就没有什么业务意义 连不连续没关系




引用求原理解析,如何做到在数据库层面让AUTO_INCREMNT字段连续。

mysql AUTO_INCEREMENT关键字的疑点

相关文章:

你感兴趣的文章:

标签云: