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

Mohu aktualizovat právě přidaný řádek pomocí spouštěčů MySQL

Jak řekl zerkms, musíte změnit delimetr. Ale protože používáte pouze 1 řádek kódu, nepotřebujete BEGIN a END. A tak nemusíte měnit ani oddělovač

CREATE TRIGGER `default_order_value` 
AFTER INSERT ON `clusters` 
FOR EACH ROW  
    UPDATE `clusters` SET `order` = NEW.id WHERE `id` = NEW.id; 

Protože se zobrazuje chyba, nemůžete řádek aktualizovat, navrhuji následující:

NEPROVÁDĚJTE aktualizační dotaz vůbec. Ve výchozím nastavení je hodnota objednávky =hodnota ID. Takže když se změní hodnota objednávky, můžete ji správně aktualizovat.

Pokud požadujete data pomocí php, udělejte něco takového:

$order = $row['order'];
if ($order == '')
    $order = $row['id'];

Poté, co ji potřebujete aktualizovat, máte správnou hodnotu.



  1. #1025 - Chyba při přejmenování (errno:150) v mysql

  2. TIMEDIFF() vs SUBTIME() v MySQL:Jaký je rozdíl?

  3. Získání data/času poslední změny v databázi MySQL

  4. Kód chyby:1005. Nelze vytvořit tabulku „...“ (chyba:150)