我有两个名为Patient and pharmacy的表.每个患者与一个药房唯一关联.我想在这些表之间的运行时创建外键约束.
Create table patient
(patient_Id varchar2(5) primary key,
patient_name varchar2(20));
Create table pharmacy
(pharmacy_Id varchar2(5) primary key,
pharmacy_name varchar2(20);
Create table patient_pharmacy_mapper
(patient_Id varchar2(5) references patient(patient_Id),
pharmacy_Id varchar2(5) references pharmacy(pharmacy_Id));
Run Code Online (Sandbox Code Playgroud)
我不是在设计时编写"引用",而是可以在运行时创建/删除这些外键约束(当任何DML语句触发时)?
我对创建一个触发器知之甚少,我们必须使用"Alter table语句"调用一个过程.
DDL语句自动提交事务.由于您不允许在触发器中提交(或回滚),因此无法在触发器中运行DDL语句(既不使用静态SQL也不使用动态SQL)
整个想法没有意义.唯一理智的方法是在创建表时创建 FK约束.你没有任何安全措施来推迟这一点,绝对没有.