Problema:
Vuoi eliminare una chiave esterna da una tabella in un database.
Esempio:
Vogliamo rimuovere la chiave esterna denominata fk_student_city_id
dalla tabella student
.
Soluzione 1 (nuova tabella):
ALTER TABLE student DROP CONSTRAINT fk_student_city_id;
Discussione:
Per eliminare una chiave esterna da una tabella, utilizzare ALTER TABLE
clausola con il nome del tavolo (nel nostro esempio, student
) seguito dalla clausola DROP CONSTRAINT
con il nome del vincolo di chiave esterna. Nel nostro esempio, il nome di questo vincolo è fk_student_city_id
.
Se il vincolo per la chiave esterna è stato generato dal database, è possibile trovare questo nome nel database. Tuttavia, ogni server di database ha un modo diverso di denominare i vincoli. In SQL Server puoi verificarlo selezionando i dati da sys.key_constraints
nella banca dati data. In PostgreSQL, selezioni conname
colonna dal pg_constraint
tavolo. Oracle memorizza questi dati nella tabella user_constraints e MySQL ti consente di ottenere i nomi da CONSTRAINT_NAME
colonna in information_schema.TABLE_CONSTRAINTS
.