Problem:
Chcesz usunąć klucz obcy z tabeli w bazie danych.
Przykład:
Chcemy usunąć klucz obcy o nazwie fk_student_city_id
z tabeli student
.
Rozwiązanie 1 (nowa tabela):
ALTER TABLE student DROP CONSTRAINT fk_student_city_id;
Dyskusja:
Aby usunąć klucz obcy z tabeli, użyj ALTER TABLE
klauzula z nazwą tabeli (w naszym przykładzie student
), po której następuje klauzula DROP CONSTRAINT
z nazwą ograniczenia klucza obcego. W naszym przykładzie nazwa tego ograniczenia to fk_student_city_id
.
Jeśli ograniczenie dla klucza obcego zostało wygenerowane przez bazę danych, możesz znaleźć tę nazwę w bazie danych. Jednak każdy serwer bazy danych ma inny sposób określania ograniczeń nazw. W SQL Server możesz to sprawdzić, wybierając dane z sys.key_constraints
w podanej bazie danych. W PostgreSQL wybierasz conname
kolumna z pg_constraint
stół. Oracle przechowuje te dane w tabeli user_constraints, a MySQL umożliwia pobieranie nazw z CONSTRAINT_NAME
kolumna w information_schema.TABLE_CONSTRAINTS
.