«Внешний ключ PL/SQL» относится к концепции использования внешних ключей в PL/SQL, который представляет собой процедурный язык, используемый в базах данных Oracle. Внешний ключ — это столбец или набор столбцов в таблице, который ссылается на первичный ключ другой таблицы. Он устанавливает связь между двумя таблицами, обеспечивая целостность данных и поддерживая ссылочную целостность.
Вот несколько методов работы с внешними ключами в PL/SQL, а также примеры кода:
-
Создание таблицы с ограничением внешнего ключа:
CREATE TABLE employees ( emp_id NUMBER PRIMARY KEY, emp_name VARCHAR2(100), dept_id NUMBER, CONSTRAINT fk_dept_id FOREIGN KEY (dept_id) REFERENCES departments(dept_id) );В этом примере таблица «Сотрудники» имеет ограничение внешнего ключа для столбца «dept_id», ссылающееся на столбец первичного ключа «dept_id» в таблице «отделы».
-
Вставка данных в таблицу с внешним ключом:
INSERT INTO employees (emp_id, emp_name, dept_id) VALUES (1, 'John Doe', 123);Здесь мы вставляем нового сотрудника в таблицу «Сотрудники», указывая идентификатор сотрудника, имя и идентификатор отдела. Ограничение внешнего ключа гарантирует, что указанный идентификатор отдела существует в таблице “departments”.
-
Обновление таблицы с помощью внешнего ключа:
UPDATE employees SET dept_id = 456 WHERE emp_id = 1;Этот оператор обновляет идентификатор отдела сотрудника с идентификатором 1. Ограничение внешнего ключа гарантирует, что обновленный идентификатор отдела существует в таблице «departments».
-
Удаление данных из таблицы с помощью внешнего ключа:
DELETE FROM employees WHERE emp_id = 1;Этот оператор удаляет сотрудника из таблицы «Сотрудники». Если в других таблицах есть какие-либо связанные записи, имеющие внешний ключ, ссылающийся на удаленного сотрудника, операция удаления завершится неудачей из-за ограничения внешнего ключа.
-
Отключение и включение ограничений внешнего ключа:
ALTER TABLE employees DISABLE CONSTRAINT fk_dept_id; ALTER TABLE employees ENABLE CONSTRAINT fk_dept_id;Эти операторы отключают и включают ограничение внешнего ключа «fk_dept_id» в таблице «сотрудники» соответственно. Отключение ограничения позволяет выполнять операции, которые в противном случае нарушили бы ограничение, например удаление записей без проверки указанной таблицы.