Die Art und Weise, wie Sie versuchen, einen Wert für eine Spalte festzulegen, ist ein Update. Weil Sie es nach dem Einfügen tun Vorgang ist abgeschlossen.
Eigentlich braucht man ein before
Abzug.
Und um denselben neuen automatisch inkrementierten Wert der Primärschlüsselspalte derselben Tabelle zuzuweisen, holen Sie ihn besser aus information_schema.tables
.
Beispiel :
delimiter //
drop trigger if exists bi_table_name //
create trigger bi_table_name before insert on table_name
for each row begin
set @auto_id := ( SELECT AUTO_INCREMENT
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME='table_name'
AND TABLE_SCHEMA=DATABASE() );
set new.priority= @auto_id;
end;
//
delimiter ;
Hinweis :Stellen Sie sicher, dass Sie keine vordefinierten Auslöser mit demselben Namen und/oder derselben Aktion haben. Wenn Sie welche haben, löschen Sie sie, bevor Sie den neuen erstellen.
Beobachtungen :
Gemäß MySQL-Dokumentation auf last_insert_id()
,
daher abhängig von last_insert_id()
und auto_increment
Feldwerte in Stapeleinfügungen scheinen nicht zuverlässig zu sein.