Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Gatilho MySQL antes de inserir coluna de atualização com novo id de incremento automático


AUTO_INCREMENT coluna são definidas apenas depois inserir.

Se você precisar acessar esse valor, você só pode em um AFTER INSERT acionar. No entanto, você não pode modificar um valor de coluna em um AFTER UPDATE acionar...

Além disso, você não pode realizar uma atualização na tabela usada em seu AFTER INSERT acionar como (http://dev.mysql. com/doc/refman/5.0/en/stored-program-restrictions.html ):

Aqui, a única solução razoável seria criar um procedimento armazenado para atualizar a tabela, ajustando as colunas relevantes em uma transação para "emular" sua instrução de inserção atômica.

Dito isto, no seu caso particular , a key column é redundante, pois essa coluna é apenas a concatenação de duas outras colunas da mesma linha.

Dado o nome, você não está procurando uma maneira de criar uma chave composta? Algo parecido:
ALTER TABLE tbl ADD UNIQUE KEY (countryCode, id);