Mysql
 sql >> Database >  >> RDS >> Mysql

Trigger MySQL prima dell'inserimento della colonna di aggiornamento con il nuovo ID di incremento automatico

AUTO_INCREMENT le colonne vengono impostate solo dopo inserire.

Se devi accedere quel valore, puoi solo in un AFTER INSERT grilletto. Tuttavia, non puoi modificare un valore di colonna in un AFTER UPDATE innesco...

Inoltre, non puoi eseguire un aggiornamento sulla tabella utilizzata nel tuo AFTER INSERT trigger as (http://dev.mysql. com/doc/refman/5.0/en/stored-program-restrictions.html ):

Qui l'unica soluzione ragionevole sarebbe quella di creare una procedura memorizzata per aggiornare la tabella, regolando le colonne pertinenti in una transazione per "emulare" la tua istruzione di inserimento atomico.

Detto questo, nel tuo caso particolare , il key colonna è ridondante poiché quella colonna è solo la concatenazione di altre due colonne della stessa riga.

Dato il suo nome, non stai invece cercando un modo per creare una chiave composta? Qualcosa del genere:

ALTER TABLE tbl ADD UNIQUE KEY (countryCode, id);