Kategoriler
SQL

MySQL ile Son Kayıt ID Almak

Veri tabanı tablosuna eklenen verinin kayıt kimliğini almak için LAST_INSERT_ID() deyimi kullanılır. LAST_INSERT_ID (), en son yürütülen INSERT ifadesinin bir sonucu olarak AUTO_INCREMENT sütunu için başarıyla eklenen ilk otomatik olarak oluşturulan değeri temsil eden BIGINT UNSIGNED (64-bit) bir değer döndürür. Dolayısıyla INSERT deyiminden sonra kullanmak gerekir.

Örnek;

INSERT INTO uyeler (eposta,parola) VALUES ('[email protected]',1234);
SELECT LAST_INSERT_ID();

LAST_INSERT_ID() ile dönen değeri bir değişkene tanımlayıp sonraki sorguda kullanabilirsiniz.

INSERT INTO uyeler (eposta,parola) VALUES ('[email protected]',1234);
SET @insert_id = LAST_INSERT_ID();
INSERT INTO log(uye,mesaj) VALUES (@insert_id,'Kayıt eklendi.');
INSERT INTO uyeler (id,eposta,parola) VALUES (null,'[email protected]',1234);
SET @insert_id = LAST_INSERT_ID();
INSERT INTO log(uye,mesaj) VALUES (@insert_id,'Kayıt eklendi.');

LAST_INSERT_ID() ile dönen değeri değişkene tanımlamadan da sonraki sorguda kullanabilirsiniz.

INSERT INTO uyeler (eposta,parola) VALUES ('[email protected]',1234);
INSERT INTO log(uye,mesaj) VALUES (LAST_INSERT_ID(),'Kayıt eklendi.');
INSERT INTO uyeler (id,eposta,parola) VALUES (null,'[email protected]',1234);
INSERT INTO log(uye,mesaj) VALUES (LAST_INSERT_ID(),'Kayıt eklendi.');

LAST_INSERT_ID() deyiminin değer döndürmesi için tablonun AUTO_INCREMENT sütününe sahip olması ve INSERT deyiminden sonra kullanılması gerektiğini unutmayın.