[英]Use REFERENCES in Vertical Fragmentation table in Oracle
首先在两个不同的数据库中创建以下表
Fragment1:
Employee(EID number(4)PRIMARY KEY, Name varchar2(20),Address varchar2(50));
Fragment2:
Employee(EID number(4),Dep_Id number(4),Mgr_Id REFERENCES Employee(EID),Salary number(6));
然后创建一个触发器以将数据插入到适当的表中。
我无法在Mgr_Id中使用[片段1]的REFERENCE Employee(EID)
请帮忙
您无法通过dblink实现FK约束。 你可以做的是写一个模仿FK约束功能的触发器。 像这样的东西:
首先,您需要为server2创建一个dblink(例如,remote)
CREATE OR REPLACE TRIGGER Example
AFTER INSERT ON fagment1
FOR EACH ROW
DECLARE
cuenta number;
BEGIN
select count(*)
into cuenta
from fagment2@Remote f2
where f2.EID = :new.EID
and rownum=1;
IF cuenta = 0 then
raise_application_error(-20001,'EID: '||:new.EID||' not found');
END IF;
EXCEPTION
WHEN OTHERS THEN --dblink down?
raise_application_error(-20001,'EID: '||:new.EID||' not found');
END;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.