sql >> Base de Datos >  >> RDS >> Mysql

¿Puedo actualizar la fila recién agregada usando disparadores de MySQL?

Como dijo zerkms, debes cambiar el delimitador. Pero como solo usa 1 línea de código, no necesita BEGIN y END. Y de esa manera, tampoco necesitas cambiar el delimitador

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

Como está recibiendo un error, no puede actualizar la fila, le sugiero lo siguiente:

NO realice la consulta de actualización en absoluto. Por defecto, el valor del pedido =el valor de ID. Entonces, cuando el valor del pedido cambia, puede actualizarlo correctamente.

Si está solicitando los datos con php, haga algo como esto:

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

Después de que necesite actualizarlo, obtendrá el valor correcto.