Comment modifier la contrainte

91

SQL Comment modifier une contrainte

Ci-dessous est 1 de ma contrainte

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

Je veux ajouter

ON DELETE CASCADE

à la contrainte ci-dessus.

Comment modifier cette contrainte existante ACTIVEPROG_FKEY1 et ajouter

ON DELETE CASCADE

à la contrainte ACTIVEPROG_FKEY1

Considérons que ACTIVEPROG_FKEY1 est à la table ACTIVEPROG

user1777711
la source

Réponses:

144

Vous ne pouvez jamais modifier les contraintes, mais vous pouvez les supprimer, puis les recréer.

Regarde ça

ALTER TABLE your_table DROP CONSTRAINT ACTIVEPROG_FKEY1;

puis recréez-le avec ON DELETE CASCADEcomme ça

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

espère cette aide

user1819920
la source
vous pouvez activer / désactiver les contraintes.
Florin Ghita
1
@FlorinGhita, oui on peut activer / désactiver ............... Parfois, il est utile de désactiver une ou plusieurs contraintes sur une table, faire quelque chose de significatif, puis réactiver la (les ) une fois que vous avez terminé. Ceci est le plus souvent effectué pour améliorer les performances lors d'une opération de chargement en bloc.
andy
12

Non, nous ne pouvons pas modifier la contrainte, la seule chose que nous pouvons faire est de la supprimer et de la recréer

ALTER TABLE [TABLENAME] DROP CONSTRAINT [CONSTRAINTNAME]

Contrainte de clé étrangère

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

Contrainte de clé primaire

Alter Table Table add constraint [Primary Key] Primary key(Column1,Column2,.....)
Andy
la source
6
Il est vrai que ce que veut l'OP n'est pas possible, mais pourquoi publiez-vous un lien vers un site SQL Server pour une question étiquetée Oracle?
Frank Schmitt