sql >> Base de Datos >  >> RDS >> Database

Cómo eliminar una restricción de clave externa en SQL

Problema:

Desea eliminar una clave externa de una tabla en una base de datos.

Ejemplo:

Queremos eliminar la clave externa llamada fk_student_city_id de la tabla student .

Solución 1 (nueva tabla):

ALTER TABLE student
DROP CONSTRAINT fk_student_city_id;

Discusión:

Para eliminar una clave externa de una tabla, use ALTER TABLE cláusula con el nombre de la tabla (en nuestro ejemplo, student ) seguido de la cláusula DROP CONSTRAINT con el nombre de la restricción de clave externa. En nuestro ejemplo, el nombre de esta restricción es fk_student_city_id .

Si la base de datos generó la restricción para la clave externa, puede encontrar este nombre en la base de datos. Sin embargo, cada servidor de base de datos tiene una forma diferente de nombrar las restricciones. En SQL Server, puede verificarlo seleccionando datos de sys.key_constraints en la base de datos dada. En PostgreSQL, selecciona el conname columna de pg_constraint mesa. Oracle almacena estos datos en la tabla user_constraints y MySQL le permite obtener nombres de CONSTRAINT_NAME columna en information_schema.TABLE_CONSTRAINTS .