0
我創建了一個觸發如下:如何使用觸發器在oracle中創建鏡像表?
create or replace trigger "PASSENGERS_BACKUP_T1"
after
insert or update or delete on "PASSENGERS"
for each row
begin
if :NEW."P_ID" is NOT null then
INSERT INTO PASSENGERS_BACKUP(
PB_ID,
PB_FIRST_NAME,
PB_LAST_NAME,
PB_STREET_ADDRESS1,
PB_STREET_ADDRESS2,
PB_CITY,
PB_STATE,
PB_POSTAL_CODE,
PB_EMAIL,
PB_PHONE_NUMBER1,
PB_PHONE_NUMBER2,
PB_URL,
PB_CREDIT_LIMIT,
PB_TAGS)
VALUES (
:new.P_ID,
:new.P_FIRST_NAME,
:new.P_LAST_NAME,
:new.P_STREET_ADDRESS1,
:new.P_STREET_ADDRESS2,
:new.P_CITY,
:new.P_STATE,
:new.P_POSTAL_CODE,
:new.P_EMAIL,
:new.PHONE_NUMBER1,
:new.PHONE_NUMBER1,
:new.URL,
:new.CREDIT_LIMIT,
:new.TAGS);
end if;
end;
現在,當我在"passengers"
表更新現有行按照上述觸發另一個新行中"passengers_backup"
表獲取添加,而不是我想更新每當在"passengers"
錶行中完成更新時,現有的行。至於,如果我在"Passengers"
表中刪除了一行,如果該行存在於'Passengers_backup'
表中,它也應該被刪除。我該如何實現這個目標?
在此先感謝。
當乘客更新時,是否要更新tables passengers_backup? –
是的,因爲passengers_backup表應該與乘客表具有相同的值 – xyz9999
如果備份表包含與原始表完全相同的數據,有什麼意義? –