A maneira como você está tentando definir o valor para uma coluna é uma atualização. Porque você está fazendo isso após inserir operação é concluída.
Você realmente precisa de um
before
acionar. E para atribuir o mesmo novo valor incrementado automaticamente da coluna de chave primária da mesma tabela, é melhor obtê-lo em
information_schema.tables
. Exemplo :
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 ;
Observação :Certifique-se de que você não tenha nenhum gatilho pré-definido com o mesmo nome e/ou ação. Se tiver algum, solte-o antes de criar o novo.
Observações :
De acordo com documentação do mysql em last_insert_id() ,
portanto, dependendo de
last_insert_id()
e auto_increment
valores de campo em inserções em lote não parecem confiáveis.