MYSQL獲取自增ID的四種方法

2022-01-11 06:19:08 字數 905 閱讀 2644

原文:

last_insert_id 是與table無關的,如果向表a插入資料後,再向表b插入資料,last_insert_id會改變。

在多使用者交替插入資料的情況下max(id)顯然不能用。這時就該使用last_insert_id了,因為last_insert_id是基於connection的,只要每個執行緒都使用獨立的 connection物件,last_insert_id函式將返回該connection對auto_increment列最新的insert or update 操作生成的第乙個record的id。這個值不能被其它客戶端(connection)影響,保證了你能夠找回自己的 id 而不用擔心其它客戶端的活動,而且不需要加鎖。使用單insert語句插入多條記錄, last_insert_id返回乙個列表。

@@identity 是表示的是最近一次向具有identity屬性(即自增列)的表插入資料時對應的自增列的值,是系統定義的全域性變數。一般系統定義的全域性變數都是以@@開頭,使用者自定義變數以@開頭。

比如有個表a,它的自增列是id,當向a表插入一行資料後,如果插入資料後自增列的值自動增加至101,則通過select @@identity得到的值就是101。使用@@identity的前提是在進行insert操作後,執行select @@identity的時候連線沒有關閉,否則得到的將是null值。

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

原文:use information_schema;

select table_name,table_rows from tables

where table_schema = 'testdb' --資料庫名稱

order by table_rows desc;

遇到使用mybatis,返回的id是其他表的

mysql獲取自增id中不存在的id

select t4.id from select id id 1 id from table1 t1,select id 0 t2,select 1 union select 2 t3 where id t1.t id 1 t4 left join table1 t5 on t5.t id t4.i...

mysql獲取自動生成的id

自增主鍵 insert into user name,password value select last insert id insert into user name,password value select last insert id 得到剛 insert 進去記錄的主鍵值,只適用與自增主...

Mysql獲取自動增加的id的最大值的方法

有時我們在資料庫中存放乙個最大的id,並且每當有一條新的記錄時,該id都自動增加。我們建立下面的表 create table maxidtest id int 10 unsigned not null auto increment,name varchar 100 not null,primary ...