Problema:
Você deseja remover uma chave estrangeira de uma tabela em um banco de dados.
Exemplo:
Queremos remover a chave estrangeira chamada
fk_student_city_id
da tabela student
. Solução 1 (nova tabela):
ALTER TABLE student DROP CONSTRAINT fk_student_city_id;
Discussão:
Para remover uma chave estrangeira de uma tabela, use o
ALTER TABLE
cláusula com o nome da tabela (no nosso exemplo, student
) seguido pela cláusula DROP CONSTRAINT
com o nome da restrição de chave estrangeira. Em nosso exemplo, o nome dessa restrição é fk_student_city_id
. Se a restrição para a chave estrangeira foi gerada pelo banco de dados, você poderá encontrar esse nome no banco de dados. No entanto, cada servidor de banco de dados tem uma maneira diferente de nomear restrições. No SQL Server, você pode verificá-lo selecionando dados de
sys.key_constraints
no banco de dados fornecido. No PostgreSQL, você seleciona o conname
coluna da pg_constraint
tabela. O Oracle armazena esses dados na tabela user_constraints e o MySQL permite que você obtenha nomes de CONSTRAINT_NAME
coluna em information_schema.TABLE_CONSTRAINTS
.