Bazı durumlarda MySQL’de işlem yaptığınız tablodaki auto_increment alanın (genelde tablonun ID alanı) son değerine ihtiyaç duyarız.

MySQL’in LAST_INSERT_ID() fonksiyonu bize son ID değerini döndürür. Ama bu fonksiyonun size bir değer döndürebilmesi için mutlaka öncesinde bir INSERT sorgusunun çalıştırılmış olması gerekmektedir.

Örneğin aşağıdaki sorgu tek başına çalıştırıldığında 0 değeri döndürecektir.
SELECT LAST_INSERT_ID();

Konuyu daha detaylı incelemek için aşağıdaki tablo yapısını kullanacağız:
CREATE TABLE names (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
name VARCHAR( 100 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL
) ENGINE = MYISAM;

Aşağıdaki örnekte tabloya bir satır veri girişi yaptıktan sonra son ID değerini alıyoruz:
INSERT INTO names (name) VALUES ('Ali');
SELECT LAST_INSERT_ID();

Sorgu sonucu olarak bize son kaydın ID değeri olan 1 dönecektir.

Yukarıda anlatılan kullanım oldukça yaygındır.

Peki ya öncesinde herhangi bir INSERT sorgusu olmayan durumlarda, tablonun bir sonraki kayıtta alacağı ID değerine ihtiyacımız olursa ne yapacağız?

Bu durumda yardımımıza MySQL’in SHOW TABLE STATUS komutu yardımımıza koşuyor:
SHOW TABLE STATUS WHERE name = 'names'

Yukarıda sorgu sonucunda bize dönecek rowset içindeki Auto_increment alanından bir sonraki ID değerini alabiliriz.