Hallo,
ich habe 2 Tabellen: "orderbook" und "orderkook_history". Wenn in "orderbook" etwas eingetragen wird soll es in "orderkook_history" archiviert werden:
Code:
CREATE OR REPLACE FUNCTION order_archiv()
RETURNS trigger AS
$$
begin
if (TG_OP='INSERT') then
insert into ORDERBOOK_HISTORY VALUES (new.ORDERBOOK_ID, new.STATUS_TIMESTAMP, new.DELIVERY_STATUS_TYPE,null,new.FETCHING_STATUS_TYPE, new.SOURCE_INFORMATION_TYPE, new.SOURCE_INFORMATION_ID, new.DRIVER_ID);
end if;
RETURN NULL;
end
$$
LANGUAGE 'plpgsql'; Code:
CREATE TRIGGER trg_order_archiv AFTER INSERT
ON orderbook FOR EACH ROW
EXECUTE PROCEDURE order_archiv()
Mein Problem ist das "orderbook_history" einen Fremdschlüssel auf "orderbook" hat. Es wird mir eine Fehlermeldung ausgegeben, weil "orderbook_history" keinen passenden Eintrag in "orderbook" findet:
FEHLER: Einfügen oder Aktualisieren in Tabelle »orderbook_history« verletzt Fremdschlüssel-Constraint »orderbook_history_orderbook_id_fkey«
DETAIL: Schlüssel (orderbook_id)=(121) ist nicht in Tabelle »orderbook« vorhanden.
Ich habe doch einen After Trigger geschrieben. Warum ist der Eintrag in der Tabelle "orderbook" nicht schon eingetragen? Warum arbeitet mein Trigger wie ein Before Trigger?
Ich hoffe, ich könnt mir helfen.
Lesezeichen