mysql increment by 2_关于mysql auto-increment
創(chuàng)建表語句如下
mysql> show create table Tautoincrement\G
*************************** 1. row ***************************
Table: Tautoincrement
Create Table: CREATE TABLE `Tautoincrement` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(10) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
如下插入數(shù)據(jù)報錯
mysql> insert into Tautoincrement values('zs');
ERROR 1136 (21S01): Column count doesn't match value count at row 1
即需要提供與建表時相同的列值
故用下述方式插入數(shù)據(jù)
mysql> insert into Tautoincrement(name) values('zs');
查詢結果如下
+----+------+
| id | name |
+----+------+
| 1 | zs |
繼續(xù)插入數(shù)據(jù)
mysql> insert into Tautoincrement(id,name) values(3,'zs');
查詢結果如下
+----+------+
| id | name |
+----+------+
| 1 | zs |
| 3 | zs |
依舊沒什么問題,但是可以得出一個結論,innodb類型的數(shù)據(jù)庫允許用戶插入autoincrement限制的列的值,與sqlserver有所不同,
繼續(xù)插入數(shù)據(jù)
mysql> insert into Tautoincrement(name) values('zss');
查詢結果如下
+----+------+
| id | name |
+----+------+
| 1 | zs |
| 3 | zs |
| 4 | zss |
可以發(fā)現(xiàn),已經(jīng)autoincrement的默認值已經(jīng)跳過id=2的情況,需注意,
此時執(zhí)行 select last_insert_id() 返回結果為4 ###還有一個問題,該函數(shù)返回該數(shù)據(jù)庫下的最新值,所以說不一定是你最新插入的id,有點尷尬
后面驗證得知
同時插入大量數(shù)據(jù), last_insert_id() 返回第一次插入時id
總結
以上是生活随笔為你收集整理的mysql increment by 2_关于mysql auto-increment的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jsp怎么连接mysql_jsp如何连接
- 下一篇: mysql事务未提交读_mysql事务之