sql >> Databáze >  >> RDS >> Mysql

Spouštěč MySQL před vložením sloupce aktualizace s novým automatickým přírůstkem ID

AUTO_INCREMENT jsou nastaveny až po vložit.

Pokud potřebujete přístup tuto hodnotu můžete pouze v AFTER INSERT spoušť. Nemůžete však upravit hodnotu sloupce v AFTER UPDATE spoušť...

Kromě toho nemůžete provést aktualizaci tabulky použité ve vašem AFTER INSERT spouštět jako (http://dev.mysql. com/doc/refman/5.0/en/stored-program-restrictions.html ):

Zde by jediným rozumným řešením bylo vytvořit uloženou proceduru pro aktualizaci tabulky, upravením příslušných sloupců v transakci tak, aby „emulovaly“ váš příkaz atomic insert.

Jak již bylo řečeno, ve vašem konkrétním případě , key sloupec je nadbytečný, protože tento sloupec je pouze zřetězením dvou dalších sloupců stejného řádku.

Vzhledem k jeho názvu, nehledáte místo toho způsob, jak vytvořit složený klíč? Něco takového:

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



  1. Pomocí sys.trigger_event_types vypište typy událostí spouštění na serveru SQL Server

  2. jsonb vs jsonb[] pro více adres pro zákazníka

  3. Pokuste se znovu otevřít již uzavřený objekt sqlitedatabase

  4. MySQL - Nahradit znak ve sloupcích