Мне нужно написать триггер в моем коде SQL, который изменяет значения в таблице A (Asortyment), которая связана с таблицей B (Historia_Zamowien) с отношением Many-Many.Для соединения A и BI используйте таблицу C (Zamowienia_Asortyment).
Как это выглядит в реляционной модели
Мне нужно добраться до Asortyment.Dostepnosc
через Zamowienia_Asortyment
послеINSERT ON Historia_Zamowien
и измените значения на 0
.Я написал код, который не работает, и я понятия не имею, что не так.Не могли бы вы помочь?
CREATE TRIGGER "Zmiana_Dostepnosci_Po_Zamowieniu"
AFTER INSERT ON "Historia_Zamowien"
FOR EACH ROW
BEGIN
UPDATE "Asortyment"
SET tab1."Dostepnosc" = 0
FROM "Asortyment" tab1 JOIN "Zamowienia_Asortyment" tab2 ON tab1."ID_sprzetu" = tab2."ID_sprzetu"
JOIN inserted tab3 ON tab2."Numer_zamowienia" = tab3."Numer_zamowienia"
WHERE tab1."ID_sprzetu" = tab2."ID_sprzetu" AND tab2."Numer_zamowienia" = inserted."Numer_Zamowienia"
END;
/
После того, как я запустил код, я получил:
Error(1,5): PL/SQL: SQL Statement ignored
Error(3,5): PL/SQL: ORA-00933: SQL command not properly ended
Error(7): PLS-00103: Endountered symbol "end-of-file" when expecting one of the following: ( begin case declare end exception exit for goto if loop mod null pragma raise return select update while with <an identifier> <a double-quoted delimited-identifier> <a bind variable> << continue close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge pipe purge json_exists json_value json_query json_object json_array