2011-06-27 13 views
12

Bu benim last_insert_id() öğesini çağırdığınızda bağlantılara göre değişir, bu yüzden last_insert_id() çağrılırken aynı bağlantıya eklenen son satırın kimliğini alırsınız. ?mysql bir tetikleyicide last_insert_id() alıyorum

Peki 'AFTER INSERT' tetikleyicisinde last_insert_id() öğesini çağırırsam ne olur?

Ne yapmak istiyorum temelde bu

DELIMITER $$ 
CREATE TRIGGER sometrigger 
AFTER INSERT ON sometable 
BEGIN 
    INSERT INTO anothertable (id, lastup) VALUES (last_insert_id(), NOW()); 
END $$ 

O 'anothertable' in kimliği 'sometable' misiniz bu işin içinde aynı olduğunu çok önemli yoksa bunun yerine saklı bir yordam oluşturmak gerekir iki tabloya ekler?

Ya da tetikleyicide tetikleyicinin ateşlenmesine neden olan ekleme deyiminden değerler almak için bazı var mı? Bunun hakkında hiçbir şey bulamadım.

cevap

17

Geçen insert id başvurmak için NEW.{id column name} kullanmak gerekir (yani örnekteki NEW.id için otomatik artış sütun id adı verilir.)

+0

Bu çalışıyor gibi görünüyor. Bu YENİ anahtar kelime tam olarak aradığım şeydi. Teşekkürler. –