Ich habe einen Trigger erstellt, um eine Zeile von orders
zu löschen, wenn user_id
und restaurant_id
auf null
festgelegt sind.ON LÖSCHEN SET NULL TRIGGER LÖSCHEN
delimiter //
create trigger order_delete
before update on orders
for each row
if new.user_id is null and new.restaurant_id is null then
delete from orders where order_id = new.order_id;
end if;
//
delimiter ;
user_id
und restaurant_id
sind Fremdschlüssel aus zwei anderen Tabellen und wird auf Null gesetzt werden, wenn sie von ihren jeweiligen Tabellen gelöscht werden. Wenn ich jedoch versuchte, sie aus ihren Tabellen zu löschen, führt sie den Trigger nicht aus. So habe ich noch eine Bestellung mit zwei user_id = NULL
und restaurant_id = NULL
verbleibenden in meiner Bestellungstabelle. Weiß jemand, warum mein Auslöser nicht auslöst?
Sorry Tippfehler in der ersten Zeile. ".... lösche ** eine Zeile ** von ...." –
Sicherlich hast du die Möglichkeit, deinen Beitrag zu bearbeiten, indem du auf den Link "Bearbeiten" direkt unter dem Fließtext klickst. –
Warum möchten Sie es auf diese Weise machen? IMHO ist es besser, explizit Daten zu löschen, die nicht mehr in der Anwendung benötigt werden, so dass dies (oder nicht in diesem Fall) zu Verwirrung und manchmal unerwünschten Nebenwirkungen führen kann. –