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

Posso aggiornare la riga appena aggiunta usando i trigger MySQL

Come ha detto zerkms, devi cambiare il delimitatore. Ma poiché usi solo 1 riga di codice, non hai bisogno di BEGIN e END. E in questo modo, non è nemmeno necessario modificare il delimitatore

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

Poiché viene visualizzato un errore, non è possibile aggiornare la riga, suggerisco quanto segue:

NON eseguire affatto la query di aggiornamento. Di default il valore dell'ordine =il valore ID. Quindi, quando il valore dell'ordine cambia, puoi aggiornarlo correttamente.

Se stai richiedendo i dati con php, fai qualcosa del genere:

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

Dopo che è necessario aggiornarlo, hai il valore corretto.