關於mysql auto increment

2022-09-23 04:42:14 字數 1465 閱讀 5062

建立表語句如下

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中的auto increment

mysql中的auto increment 1 建立 2 使用 如果不寫固定列,則必須要插入該列,可以直接寫null,否則會報錯 可以直接在...

MySQL中的AUTO INCREMENT

用法 create table test id int unsigned not null primary key auto increme...

AUTO INCREMENT 欄位

我們通常希望在每次插入新記錄時,自動地建立主鍵欄位的值。 我們可以在表中建立一個 auto increment 欄位。 下列 sql 語句把...