mysql increment by 2_关于mysql auto-increment
創建表語句如下
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)
如下插入數據報錯
mysql> insert into Tautoincrement values('zs');
ERROR 1136 (21S01): Column count doesn't match value count at row 1
即需要提供與建表時相同的列值
故用下述方式插入數據
mysql> insert into Tautoincrement(name) values('zs');
查詢結果如下
+----+------+
| id | name |
+----+------+
| 1 | zs |
繼續插入數據
mysql> insert into Tautoincrement(id,name) values(3,'zs');
查詢結果如下
+----+------+
| id | name |
+----+------+
| 1 | zs |
| 3 | zs |
依舊沒什么問題,但是可以得出一個結論,innodb類型的數據庫允許用戶插入autoincrement限制的列的值,與sqlserver有所不同,
繼續插入數據
mysql> insert into Tautoincrement(name) values('zss');
查詢結果如下
+----+------+
| id | name |
+----+------+
| 1 | zs |
| 3 | zs |
| 4 | zss |
可以發現,已經autoincrement的默認值已經跳過id=2的情況,需注意,
此時執行 select last_insert_id() 返回結果為4 ###還有一個問題,該函數返回該數據庫下的最新值,所以說不一定是你最新插入的id,有點尷尬
后面驗證得知
同時插入大量數據, last_insert_id() 返回第一次插入時id
總結
以上是生活随笔為你收集整理的mysql increment by 2_关于mysql auto-increment的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jsp怎么连接mysql_jsp如何连接
- 下一篇: mysql事务未提交读_mysql事务之