Database
 sql >> Base de Dados >  >> RDS >> Database

Como excluir uma restrição de chave estrangeira no SQL

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 .