Database
 sql >> Database >  >> RDS >> Database

Come eliminare un vincolo di chiave esterna in SQL

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 .