Problem:
Du vil slippe en fremmednøgle fra en tabel i en database.
Eksempel:
Vi ønsker at fjerne fremmednøglen med navnet fk_student_city_id
fra tabellen student
.
Løsning 1 (ny tabel):
ALTER TABLE student DROP CONSTRAINT fk_student_city_id;
Diskussion:
For at slippe en fremmednøgle fra en tabel, brug ALTER TABLE
klausul med navnet på tabellen (i vores eksempel student
) efterfulgt af klausulen DROP CONSTRAINT
med navnet på den fremmede nøgle-begrænsning. I vores eksempel er navnet på denne begrænsning fk_student_city_id
.
Hvis begrænsningen for den fremmede nøgle blev genereret af databasen, kan du finde dette navn i databasen. Hver databaseserver har dog en anden måde at navngive begrænsninger på. I SQL Server kan du kontrollere det ved at vælge data fra sys.key_constraints
i den givne database. I PostgreSQL vælger du conname
kolonne fra pg_constraint
bord. Oracle gemmer disse data i user_constraints-tabellen, og MySQL giver dig mulighed for at hente navne fra CONSTRAINT_NAME
kolonne i information_schema.TABLE_CONSTRAINTS
.