gpt4 book ai didi

oracle - 如何在 Oracle 环境中使用触发器和/或过程在运行时创建外键

转载 作者:行者123 更新时间:2023-12-02 08:22:49 26 4
gpt4 key购买 nike

我有两个表,名为 patient 和 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) <b>references patient(patient_Id)</b>,
pharmacy_Id varchar2(5) <b>references pharmacy(pharmacy_Id)</b>);

我可以在运行时(任何 DML 语句触发时)创建/删除这些外键约束,而不是在设计时编写“引用”吗?

我对创建触发器知之甚少,我们必须在其中调用带有“Alter table 语句”的过程。

最佳答案

DDL 语句自动提交事务。由于不允许在触发器中提交(或回滚),因此您可以在触发器中运行 DDL 语句(既不使用静态 SQL 也不使用动态 SQL)


整个想法没有意义。唯一明智的做法是在创建表时创建 FK 约束。拖延这件事不会给您带来安全感,绝对不会。

关于oracle - 如何在 Oracle 环境中使用触发器和/或过程在运行时创建外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35210242/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com