Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Kann ich die gerade hinzugefügte Zeile mit MySQL-Triggern aktualisieren?

Wie zerkms sagte, müssen Sie das Trennzeichen ändern. Da Sie jedoch nur eine Codezeile verwenden, benötigen Sie BEGIN und END nicht. Auf diese Weise müssen Sie auch das Trennzeichen nicht ändern

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

Da Sie eine Fehlermeldung erhalten, dass Sie die Zeile nicht aktualisieren können, schlage ich Folgendes vor:

Führen Sie die Update-Abfrage überhaupt NICHT durch. Standardmäßig ist der Bestellwert =der ID-Wert. Wenn sich also der Bestellwert ändert, können Sie ihn ordnungsgemäß aktualisieren.

Wenn Sie die Daten mit PHP anfordern, gehen Sie so vor:

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

Nachdem Sie es aktualisieren müssen, haben Sie den richtigen Wert.