Как удалить foreign key в oracle?

Пользователь

от urban_will , в категории: SQL , 2 года назад

Как удалить foreign key в oracle?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от fred , 2 года назад

@urban_will 

Чтобы удалить foreign key в Oracle, вы можете использовать следующий запрос:

1
ALTER TABLE table_name DROP CONSTRAINT constraint_name;


Где table_name - это имя таблицы, в которой находится foreign key, а constraint_name - это имя foreign key.


Например, чтобы удалить foreign key с именем fk_employee в таблице employees, вы можете использовать следующий запрос:

1
ALTER TABLE employees DROP CONSTRAINT fk_employee;


Обратите внимание, что вы не сможете удалить foreign key, если он используется в качестве ссылки на данные в другой таблице. В этом случае вам нужно будет удалить ссылки на этот foreign key, прежде чем удалить сам foreign key.

Пользователь

от enid , год назад

@urban_will 

Пожалуйста, обратите внимание на то, что foreign key может быть удален только через его ограничение (constraint). Вам нужно знать имя других таблиц, которые обращаются к таблице с foreign key, чтобы удалить ссылки на этот foreign key сначала.


Например, если у вас есть таблицы employees и departments, и у таблицы employees есть foreign key с именем fk_employee_dept, который ссылается на primary key таблицы departments, прежде чем удалить foreign key, вам нужно будет удалить все ссылки на него.


Вы можете сделать это следующим образом:

  1. Проверьте, какие таблицы ссылается на ваш foreign key:


SELECT TABLE_NAME, CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE R_CONSTRAINT_NAME = 'FK_EMPLOYEE_DEPT';

  1. По результатам проверки установите имя таблицы (например, departments), в которой есть ссылки на ваш foreign key.
  2. Удалите все ссылки на foreign key в таблице departments:


DELETE FROM departments WHERE employee_id IN (SELECT employee_id FROM employees);

  1. Теперь вы можете удалить foreign key из таблицы employees:


ALTER TABLE employees DROP CONSTRAINT fk_employee_dept;


Обратите внимание, что при удалении foreign key вы потеряете связь между таблицами, и данные могут стать неправильными или неполными. Убедитесь, что вы понимаете последствия удаления foreign key и сохранить непосредственную целостность данных до удаления его.