У меня есть две таблицы, называемые пациентом и аптекой. Каждый пациент однозначно связан с одной аптекой. Я хочу создать ограничение внешнего ключа во время выполнения между этими таблицами.Как создать внешний ключ во время выполнения с использованием триггеров и/или процедур в среде Oracle
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));
Вместо написания «ссылки» во время разработки, Могу ли я создать/удалить эти ограничения внешнего ключа во время выполнения (когда какое-либо заявление пожаров DML)?
Я мало знаю о создании триггера, где мы должны вызвать процедуру с помощью оператора «Alter table».
Возможно, вы попытаетесь достичь этого с помощью 'Dynamic SQL', хотя любая команда DDL перенесет все ваши транзакции. Кроме того, почему вы хотите манипулировать своими ограничениями в своих триггерах ?! Похож на действительно плохую идею/дизайн для меня (если мне не хватает чего-то или не хватает знаний Oracle DB?). – AndrewMcCoist
Я пытаюсь изолировать таблицы друг от друга для целей безопасности. –
Вот некоторые ссылки, вы можете прочитать [Native Dynamic SQL] (https://oracle-base.com/articles/8i/native-dynamic-sql), [Кодирование динамического SQL] (https://docs.oracle .com/CD/B19306_01/appdev.102/b14251/adfns_dynamic_sql.htm) – AndrewMcCoist