Я задаюсь вопросом о выполнении/запала порядок триггеров для ФКС с UPDATE CASCADE, касающиеся таблиц внучат, в PostgreSQL (9,3)Выполнение заказа каскадных триггеров в PostgreSQL
Вот что у меня есть:
Parent: Invoices (invoice_id)
Child: Invoice_Lines (invoice_id, line_nbr)
Grandchild: Invoice_Line_Taxes (invoice_id, line_nbr, tax)
Invoice_Lines has FOREIGN KEY (invoice_id) REFERENCES Invoices ON UPDATE CASCADE;
Invoice_Line_Taxes has FOREIGN KEY (invoice_id, line_nbr) REFERENCES Invoice_Lines ON UPDATE CASCADE;
У меня также есть пользовательский триггер UPDATE для счетов-фактур (имя начинается с S, которое появляется после RI_). Этот триггер суммирует суммы счетов. И мой фактический оператор обновления изменяет invoice_id, который распространяется до ребенка и внука.
Неисправность в/во время моего настраиваемого триггера invoice_id для Invoice_Lines уже изменена, но не для внука Invoice_Line_Taxes.
Я сбросила строки внутри пользовательского триггера с помощью ПОВЫШЕНИЕ:
invoice_lines: (5,1)
invoice_line_taxes: (-1,1,HST)
После запуска:
SELECT * from invoice_line_taxes where invoice_id IN (5,-1);
invoice_id | line_nbr | tax_nm
------------+----------+--------
5 | 1 | HST
Так что я задаюсь вопросом, что такое порядок выполнения триггера по отношению к каскадные триггеры?
Я предположил бы, что-то вроде этого:
RI_on_invoices
RI_on_invoice_lines
S_custom_trigger
Любые идеи? Кто-нибудь знает, где я могу получить официальную документацию по заказу на исполнение? Я пробовал найти подробную документацию об этом, но все, что я нашел, это упорядочение в алфавитном порядке. Возможно, если я найду конкретные подробности о заказе, я смогу что-то создать вокруг него. Но сейчас я буду основывать его на догадках.
спасибо.
спасибо. Подробный поясник объяснения помогает. До этого я создал небольшой триггер, который эхом отозвался, его вызывали, чтобы оценить порядок выполнения триггеров. – user4317541