Sposób, w jaki próbujesz ustawić wartość kolumny, to aktualizacja. Ponieważ robisz to po wstawieniu operacja została zakończona.
Właściwie potrzebujesz before
cyngiel.
Aby przypisać tę samą nową automatycznie zwiększaną wartość kolumny klucza podstawowego tej samej tabeli, lepiej pobierz ją z information_schema.tables
.
Przykład :
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 ;
Uwaga :Upewnij się, że nie masz żadnego predefiniowanego wyzwalacza o tej samej nazwie i/lub akcji.Jeśli masz jakieś, usuń je przed utworzeniem nowego.
Obserwacje :
Zgodnie z Dokumentacja mysql dotycząca last_insert_id()
,
stąd, w zależności od last_insert_id()
i auto_increment
wartości pól we wstawkach wsadowych wydają się nie być wiarygodne.