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

MySQL trigger før indsæt opdateringskolonne med nyt auto-increment id

AUTO_INCREMENT kolonne er kun sat efter indsætte.

Hvis du har brug for at adgang den værdi, kan du kun i en AFTER INSERT udløser. Du kan dog ikke ændre en kolonneværdi i en AFTER UPDATE trigger...

Derudover kan du ikke udføre en opdatering af tabellen brugt i din AFTER INSERT trigger som (http://dev.mysql. com/doc/refman/5.0/da/stored-program-restrictions.html ):

Her ville den eneste rimelige løsning være at oprette en lagret procedure for at opdatere tabellen, justere de relevante kolonner i en transaktion for at "emulere" din atomic insert-sætning.

Når det er sagt, i dit særlige tilfælde , key kolonne er overflødig, da denne kolonne kun er sammenkædningen af ​​to andre kolonner i samme række.

I betragtning af dets navn, leder du ikke efter en måde at oprette en sammensat nøgle i stedet for? Sådan noget:

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



  1. MAMP PRO går ned; MySQL starter ikke ved genstart

  2. Få ugedag i SQL Server 2005/2008

  3. Sådan fjerner du førende og efterfølgende hvide mellemrum i MySQL

  4. MySQL - Adjacency List Model - Få dybde