Probleem:
U wilt een externe sleutel uit een tabel in een database laten vallen.
Voorbeeld:
We willen de externe sleutel met de naam fk_student_city_id
. verwijderen uit de tabel student
.
Oplossing 1 (nieuwe tabel):
ALTER TABLE student DROP CONSTRAINT fk_student_city_id;
Discussie:
Om een externe sleutel uit een tabel te verwijderen, gebruikt u de ALTER TABLE
clausule met de naam van de tabel (in ons voorbeeld student
) gevolgd door de clausule DROP CONSTRAINT
met de naam van de externe sleutelbeperking. In ons voorbeeld is de naam van deze beperking fk_student_city_id
.
Als de beperking voor de refererende sleutel door de database is gegenereerd, kunt u deze naam in de database vinden. Elke databaseserver heeft echter een andere manier om beperkingen te benoemen. In SQL Server kunt u dit controleren door gegevens te selecteren uit sys.key_constraints
in de opgegeven database. In PostgreSQL selecteert u de conname
kolom uit de pg_constraint
tafel. Oracle slaat deze gegevens op in de tabel user_constraints en MySQL stelt u in staat namen op te halen uit CONSTRAINT_NAME
kolom in information_schema.TABLE_CONSTRAINTS
.