sql >> Database >  >> RDS >> Mysql

MySQL-trigger voordat updatekolom wordt ingevoegd met nieuwe auto-increment-id

AUTO_INCREMENT kolom worden pas na . ingesteld invoegen.

Als u toegang nodig heeft die waarde, kunt u alleen in een AFTER INSERT trekker. U kunt echter niet wijzigen een kolomwaarde in een AFTER UPDATE trigger...

Bovendien kunt u geen update uitvoeren op de tabel die wordt gebruikt in uw AFTER INSERT activeren als (http://dev.mysql. com/doc/refman/5.0/en/stored-program-restrictions.html ):

Hier zou de enige redelijke oplossing zijn om een ​​opgeslagen procedure te creëren om de tabel bij te werken, door de relevante kolommen in een transactie aan te passen om uw atomaire insert-statement te "emuleren".

Dat gezegd hebbende, in jouw specifieke geval , de key kolom is overbodig omdat die kolom slechts de aaneenschakeling is van twee andere kolommen van dezelfde rij.

Bent u, gezien de naam, niet op zoek naar een manier om in plaats daarvan een samengestelde sleutel te maken? Zoiets:

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



  1. MySQL:index json-arrays van variabele lengte?

  2. Wordnet SQL-uitleg

  3. MySQL:Vind ontbrekende datums tussen een datumbereik

  4. SQL, Postgres OID's, wat zijn het en waarom zijn ze nuttig?