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

user1777711
quelle

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

user1819920
quelle
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,.....)
Andy
quelle
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