Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Posso atualizar a linha recém-adicionada usando gatilhos do MySQL


Como zerkms disse, você precisa alterar o delimitador. Mas como você usa apenas 1 linha de código, não precisa do BEGIN e END. E dessa forma, você também não precisa alterar o delimitador
CREATE TRIGGER `default_order_value` 
AFTER INSERT ON `clusters` 
FOR EACH ROW  
    UPDATE `clusters` SET `order` = NEW.id WHERE `id` = NEW.id; 

Como você está recebendo um erro, não pode atualizar a linha, sugiro o seguinte:

NÃO execute a consulta de atualização. Por padrão, o valor do pedido =o valor do ID. Assim, quando o valor do pedido for alterado, você poderá atualizá-lo corretamente.

Se você estiver solicitando os dados com php, faça algo assim:
$order = $row['order'];
if ($order == '')
    $order = $row['id'];

Depois que você precisar atualizar, você terá o valor correto.