MySQL 自增ID值 獲取的方法

2021-08-01 17:39:09 字數 2862 閱讀 1101

如何獲取 mysql中某個表的自增id欄位的下乙個值 ?

方法一: 

例如:在zx_ofc.task_order表中task_id是自增欄位。

它的下乙個自增字段可以通過下面的語句獲得

select `auto_increment` from  information_schema.tables 

where table_schema = 'zx_ofc' and  table_name  = 'task_order';

該數值其實就是下面sql語句執行後輸出的數值 + 1.

select max(zx_ofc.task_order.task_id) from zx_ofc.task_order;

方法二:

show table status;

得出的結果裡邊對應表名記錄中有個auto_increment欄位,裡邊有下乙個自增id的數值就是當前該錶的最大自增id。

如何返回插入資料後的那個

自增id欄位的值?

方法:使用 last_insert_id() 函式。

sql例子如下:

下面的這個表初始空的,執行下面的語句系列。

insert into thb_test(keyword1) values("thb");

select last_insert_id(); 

//輸出值為1 1

//意味最後一條

sql插入語句的自增id是1

我們再來執行多條insert語句,看看結果如何。

insert into thb_test(keyword1) values("bill");

insert into thb_test(keyword1) values("bigtree");

select last_insert_id(); 

//輸出數值為3,意味最後一條

sql插入語句的自增id是3 3

上面例子說明 執行兩個insert語句,

last_insert_id()返回最後乙個插入語句的結果。

mysql> select @@version;

+------------+

| @@version  |

+------------+

| 5.5.24-log |

+------------+

1 row in set (0.17 sec)

我在 mysql 

5.5.24上驗證過了:last_insert_id()返回最後乙個插入語句的自增結果。

網路上的說法: 」

如果一句insert插入多條,返回的是第乙個id」  需要解釋下。

即如果用一條insert語句插入了多條語句,則該函式會返回第乙個id。

在下面的 mysql  官方文件中,有下面的解釋,注意下綠色背景的sql語句

mysql>use test;

database changed

mysql>create table t (

->id int auto_increment not null primary key,

->name varchar(10) not null

->);

query ok, 0 rows affected (0.09 sec)

mysql>insert into t values (null, 'bob');

query ok, 1 row affected (0.01 sec)

mysql>select * from t;

+----+------+

| id | name |

+----+------+

| 1 | bob |

+----+------+

1 row in set (0.01 sec)

mysql>select last_insert_id();

+------------------+

| last_insert_id() |

+------------------+

| 1 |

+------------------+

1 row in set (0.00 sec)

mysql>insert into t values

->(null, 'mary'), (null, 'jane'), (null, 'lisa');

query ok, 3 rows affected (0.00 sec)

records: 3 duplicates: 0 warnings: 0

mysql> select * from t;

+----+------+

| id | name |

+----+------+

| 1 | bob |

| 2 | mary |

| 3 | jane |

| 4 | lisa |

+----+------+

4 rows in set (0.01 sec)

mysql>select last_insert_id();

+------------------+

| last_insert_id() |

+------------------+

| 2 |

+------------------+

1 row in set (0.00 sec)

mysql自增ID起始值修改方法

在mysql中很多朋友都認為欄位為auto increment型別自增id值是無法修改,其實這樣理解是錯誤的,下面介紹mysql自增id的起始值修改與設定方法。通常的設定自增字段的方法 建立 時新增 複製 如下 create table table1 id int auto increment pr...

mysql 實現id自增序列 mysql自增id列

如果希望在每次插入新記錄時,自動地建立主鍵欄位的值。可以在表中建立乙個 auto increment 字段。mysql 使用 auto increment 關鍵字來執行 auto increment 任務。預設地auto increment 的開始值是 1,每條新記錄遞增 1。主鍵又稱主關鍵字,主關...

MySQL中自增ID起始值修改方法

在實際測試工作過程中,有時因為生產環境已有歷史資料原因,需要測試環境資料id從某個值開始遞增,此時,我們需要修改資料庫中自增id起始值,下面以mysql為例 表名 users 建表時新增 create table users id int auto increment primary key,666...