sql >> Database >  >> RDS >> Database

Hoe een externe sleutelbeperking in SQL te verwijderen?

Probleem:

U wilt een externe sleutel uit een tabel in een database laten vallen.

Voorbeeld:

We willen de externe sleutel met de naam fk_student_city_id . verwijderen uit de tabel student .

Oplossing 1 (nieuwe tabel):

ALTER TABLE student
DROP CONSTRAINT fk_student_city_id;

Discussie:

Om een ​​externe sleutel uit een tabel te verwijderen, gebruikt u de ALTER TABLE clausule met de naam van de tabel (in ons voorbeeld student ) gevolgd door de clausule DROP CONSTRAINT met de naam van de externe sleutelbeperking. In ons voorbeeld is de naam van deze beperking fk_student_city_id .

Als de beperking voor de refererende sleutel door de database is gegenereerd, kunt u deze naam in de database vinden. Elke databaseserver heeft echter een andere manier om beperkingen te benoemen. In SQL Server kunt u dit controleren door gegevens te selecteren uit sys.key_constraints in de opgegeven database. In PostgreSQL selecteert u de conname kolom uit de pg_constraint tafel. Oracle slaat deze gegevens op in de tabel user_constraints en MySQL stelt u in staat namen op te halen uit CONSTRAINT_NAME kolom in information_schema.TABLE_CONSTRAINTS .


  1. Hoe te repareren "Procedure verwacht parameter '@statement' van het type 'ntext/nchar/nvarchar'." Fout in SQL Server

  2. Postgres INTERVAL met waarde uit tabel

  3. ORA-12170:TNS:Time-out verbinding opgetreden

  4. Kan 'alleen-lezen' database niet verkleinen | Transactielogboek verkleinen bij gebruik van AlwaysOn-beschikbaarheidsgroep