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

Sådan slettes en fremmednøglebegrænsning i SQL

Problem:

Du vil slippe en fremmednøgle fra en tabel i en database.

Eksempel:

Vi ønsker at fjerne fremmednøglen med navnet fk_student_city_id fra tabellen student .

Løsning 1 (ny tabel):

ALTER TABLE student
DROP CONSTRAINT fk_student_city_id;

Diskussion:

For at slippe en fremmednøgle fra en tabel, brug ALTER TABLE klausul med navnet på tabellen (i vores eksempel student ) efterfulgt af klausulen DROP CONSTRAINT med navnet på den fremmede nøgle-begrænsning. I vores eksempel er navnet på denne begrænsning fk_student_city_id .

Hvis begrænsningen for den fremmede nøgle blev genereret af databasen, kan du finde dette navn i databasen. Hver databaseserver har dog en anden måde at navngive begrænsninger på. I SQL Server kan du kontrollere det ved at vælge data fra sys.key_constraints i den givne database. I PostgreSQL vælger du conname kolonne fra pg_constraint bord. Oracle gemmer disse data i user_constraints-tabellen, og MySQL giver dig mulighed for at hente navne fra CONSTRAINT_NAME kolonne i information_schema.TABLE_CONSTRAINTS .


  1. Forkert syntaks nær ')' kalder lagret procedure med GETDATE

  2. Hvad er PLSQL-poster i Oracle

  3. FATAL:adgangskodegodkendelse mislykkedes for bruger postgres (postgresql 11 med pgAdmin 4)

  4. Opret flere Postgres-forekomster på samme maskine