Způsob, jakým se pokoušíte nastavit hodnotu sloupci, je aktualizace. Protože to děláte po vložení operace je dokončena.
Ve skutečnosti potřebujete before
spoušť.
A chcete-li přiřadit stejnou novou automaticky inkrementovanou hodnotu sloupci primárního klíče stejné tabulky, měli byste ji získat z information_schema.tables
.
Příklad :
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 ;
Poznámka :Ujistěte se, že nemáte žádné předdefinované spouštěče se stejným názvem a/nebo akcí. Pokud nějaké máte, před vytvořením nového je vypusťte.
Pozorování :
Podle dokumentaci mysql na last_insert_id()
,
tedy v závislosti na last_insert_id()
a auto_increment
hodnoty polí v dávkových vložkách se nezdají být spolehlivé.