Supprimer une "CONSTRAINT" - SQL/NoSQL - Programmation
Marsh Posté le 11-03-2005 à 11:07:07
chamac a écrit : Bonjour. |
Syntaxe pour Oracle
ALTER TABLE Nom_Table
|
{ MODIFY CONSTRAINT nom_contrainte définition_contrainte
|
DROP
{ PRIMARY KEY | UNIQUE ( nom_colonne [, nom_colonneN] ) }
| CONSTRAINT nom_contrainte
}
|
{ ADD nom_colonne type_donnée [, nom_colonneN type_donnée ]
| MODIFY ( nom_colonne [type_donnée] [ définition_contrainte ]
[, nom_colonneN [type_donnée] [ définition_contrainte ] ]
| DROP [ COLUMN ]
nom_colonne | ( nom_colonne [, nom_colonneN ] )
[ CASCADE CONSTRAINT ] | INVALIDATE
}
Syntaxe pour SQL Server
ALTER TABLE table
{ [ ALTER COLUMN nom_colonne nouveau_type ]
| ADD
{ [ nom_colonne nouveau_type ]
| nom_colonne AS expression_colonne_calculée
} [ ,...n ]
| [ WITH CHECK | WITH NOCHECK ] ADD
{ définition_contrainte } [ ,...n ]
| DROP
{ [ CONSTRAINT ] nom_contrainte
| COLUMN nom_colonne } [ ,...n ]
| { CHECK | NOCHECK } CONSTRAINT
{ ALL | nom_contrainte [ ,...n ] }
Marsh Posté le 11-03-2005 à 16:50:46
en gros: ALTER TABLE nomtable DROP CONSTRAINT nomcontrainte;
c'est quand même plus clair, enfin je trouve
Marsh Posté le 12-03-2005 à 16:19:43
OK merci mais cela ne résoud pas mon problème :
ALTER TABLE T_GROUPE DROP CONSTRAINT REFERENCES;
par exemple j'ai un message d'erreur [Token unknown - line 1, char 37 REFERENCES ]
Je n'arrive pas à trouver la bonne syntaxe. C'est pourtant la forme indiquée dans la doc de Interbase 6.
J'ai été obligé de sacrifier mes données et de recréer les tables.
Si d'autres idées merci.
Marsh Posté le 13-03-2005 à 10:23:40
ben on t'a donné la bonne syntaxe, c'est toi qui te gourre totalement....
juste: ALTER TABLE nomtable DROP CONSTRAINT nomcontrainte;
faux : ALTER TABLE T_GROUPE DROP CONSTRAINT REFERENCES;
alors ce qui est faut c'est ton REFERENCES, ce que tu dois mettre c'est le nom de la contrainte, chaque contrainte à un nom bien sure, soit un nom que tu as défini toi même soit un nom que le SGBD à donné à ta contrainte, à toi de chercher le nom de la contrainte...
Marsh Posté le 13-03-2005 à 13:19:45
chamac a écrit : OK merci mais cela ne résoud pas mon problème : |
references ça peut pas être le nom de la contrainte, c'est un mot réservé. Ou alors tente 'references' si la contraintes s'appelle vraiment references
Marsh Posté le 15-03-2005 à 10:48:36
C'est bon j'ai enfin trouvé le nom de la contrainte.
Merci.
Marsh Posté le 29-01-2008 à 18:52:43
Bonjour,
Nouvelle arrivante sur le forum, je me retourne vers vous pour un souci de requête de suppression de clés étrangères en SQL.
Je souhaiterai savoir quelle est la syntaxe pour vérifier l'existance d'une foreign key avant de la supprimer (par un "if exists" par exemple)? Est-ce-que cela est possible? et est-ce-que quelqu'un connaîtrait la syntaxe.
Merci d'avance,
Marsh Posté le 31-01-2008 à 14:32:27
Le plus simple sous Oracle, c'est de consulter les tables système.
http://www.techonthenet.com/oracle/sys_tables/
Marsh Posté le 11-03-2005 à 10:22:17
Bonjour.
Qui pourrait me donner la syntaxe exacte (ou un lien):
ALTER TABLE T_X DROP CONSTRAINT REFERENCES ...
J'utilise IB6 et tourne en rond.
Merci.