Comment déposer plus d'une contrainte à la fois (Oracle, SQL)
Je vais changer les contraintes dans ma base de données et j'ai besoin de supprimer certains d'entre eux. Je sais que pour une seule contrainte, la commande est la suivante:
ALTER TABLE tblApplication DROP CONSTRAINT constraint1_name;
Cependant, lorsque j'essaie
ALTER TABLE tblApplication DROP (
CONSTRAINT constraint1_name,
CONSTRAINT constraint2_name
);
il ne fonctionne pas et j'ai besoin de le faire:
ALTER TABLE tblApplication DROP CONSTRAINT constraint1_name;
ALTER TABLE tblApplication DROP CONSTRAINT constraint2_name;
Est-il un moyen de supprimer plus d'une contrainte en une seule commande? J'aimerais éviter de répéter ALTER TABLE tblApplication
, tout comme avec l' ADD
commande:
ALTER TABLE tblApplication
ADD {
CONSTRAINT contraint1_name FOREIGN KEY ... ENABLE,
CONSTRAINT contraint2_name FOREIGN KEY ... ENABLE,
};
Dans votre exemple ajouter vous avez utilisé des accolades à la place des parenthèses.
OriginalL'auteur John Manak | 2011-05-02
Vous devez vous connecter pour publier un commentaire.
Oui, vous pouvez. Vous avez juste besoin de répéter l '"abandon" contrainte " par la contrainte. par exemple,
Edit: j'ai testé cette contre Oracle 11, et il a bien fonctionné. Ne sais pas sur les anciennes versions.
Pour être juste, la documentation d'Oracle sur ALTER TABLE est assez difficile à lire. Il m'a fallu du temps pour trouver une phrase qui indique que plusieurs baisse de clauses sont autorisés. Le diagramme de syntaxe n'est pas du tout évident, et l'on pourrait faire valoir qu'il ne le permet pas.
Merci, c'est ce que je cherchais.
OriginalL'auteur Sodved
Il y a une forme alternative pour supprimer les contraintes liées à une colonne dans une table, aussi à la baisse de la colonne avec CASCADE:
Il est testé sur Oracle 11g
OriginalL'auteur Jordi M.