So ändern Sie die Einschränkung


90

SQL Ändern der Einschränkung

Unten ist 1 meiner Einschränkung

CONSTRAINT ACTIVEPROG_FKEY1 FOREIGN KEY(ActiveProgCode) REFERENCES PROGRAM(ActiveProgCode),

Ich möchte hinzufügen

ON DELETE CASCADE

auf die obige Einschränkung.

Wie ändere ich diese vorhandene Einschränkung ACTIVEPROG_FKEY1 und füge sie hinzu

ON DELETE CASCADE

ACTIVEPROG_FKEY1 einschränken

Beachten Sie, dass sich ACTIVEPROG_FKEY1 in der Tabelle ACTIVEPROG befindet

Antworten:


141

Sie können Einschränkungen nie ändern, aber Sie können sie löschen und dann neu erstellen.

Schau dir das an

ALTER TABLE your_table DROP CONSTRAINT ACTIVEPROG_FKEY1;

und erstellen Sie es dann mit , ON DELETE CASCADEwie diese

ALTER TABLE your_table
add CONSTRAINT ACTIVEPROG_FKEY1 FOREIGN KEY(ActiveProgCode) REFERENCES PROGRAM(ActiveProgCode)
    ON DELETE CASCADE;

Ich hoffe das hilft


Sie können Einschränkungen aktivieren / deaktivieren.
— Florin Ghita

1
@FlorinGhita, ja, wir können aktivieren / deaktivieren ............... Manchmal ist es nützlich, eine oder mehrere Einschränkungen für eine Tabelle zu deaktivieren, etwas Bedeutendes zu tun und dann die Konstante (n) wieder zu aktivieren ) nachdem du fertig bist. Dies wird meistens durchgeführt, um die Leistung während eines Massenladevorgangs zu verbessern.
— Andy

12

Nein. Wir können die Einschränkung nicht ändern. Wir können sie nur löschen und neu erstellen

ALTER TABLE [TABLENAME] DROP CONSTRAINT [CONSTRAINTNAME]

Fremdschlüsseleinschränkung

Alter Table Table1 Add Constraint [CONSTRAINTNAME] Foreign Key (Column) References Table2 (Column) On Update Cascade On Delete Cascade

Primärschlüsseleinschränkung

Alter Table Table add constraint [Primary Key] Primary key(Column1,Column2,.....)

6
Es ist wahr, dass das, was das OP will, nicht möglich ist, aber warum veröffentlichen Sie einen Link zu einer SQL Server-Site für eine Frage mit dem Tag Oracle?
— Frank Schmitt
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.