AUTO_INCREMENT
kolumnen ställs bara in efter Föra in.
Om du behöver åtkomst det värdet kan du bara i en AFTER INSERT
utlösare. Du kan dock inte ändra ett kolumnvärde i en AFTER UPDATE
utlösa...
Dessutom kan du inte utföra en uppdatering av tabellen som används i din AFTER INSERT
trigger som (http://dev.mysql. com/doc/refman/5.0/en/stored-program-restrictions.html
):
Här skulle den enda rimliga lösningen vara att skapa en lagrad procedur för att uppdatera tabellen, justera de relevanta kolumnerna i en transaktion för att "emulera" din atominsättningssats.
Som sagt, i ditt specifika fall , key
kolumnen är redundant eftersom den kolumnen bara är sammanlänkningen av två andra kolumner i samma rad.
Med tanke på dess namn, letar du inte efter ett sätt att skapa en sammansatt nyckel istället? Något sådant:
ALTER TABLE tbl ADD UNIQUE KEY (countryCode, id);