2010-10-11 5 views
0

Je rencontre un problème avec une instruction SQL. Je veux activer un « ON UPDATE CASCADE » comportement pour une clé étrangère dans une table avec cette déclaration:Problème avec une instruction SQL

ALTER TABLE "DB"."RECORD" ADD CONSTRAINT "RECORD_PT_OUTIL_FK1" FOREIGN KEY ("CDE_PO") 
REFERENCES "DB"."PT_OUTIL" ("CDE_PO") ON UPDATE CASCADE ENABLE; 

Mais quand je lance la déclaration dans Oracle Developer, je viens d'obtenir ce message d'erreur: « Ora- 00905: mot clé manquant " Je ne peux pas trouver ce qui pourrait être ce mot-clé manquant, j'ai essayé plusieurs changements mais toujours la même erreur se produit. Je réutilise un code généré par Oracle Developer lui-même et je le modifie simplement avec ce que je veux. Ceci est le code généré:

ALTER TABLE "DB"."RECORD" ADD CONSTRAINT "RECORD_PT_OUTIL_FK1" FOREIGN KEY ("CDE_PO") 
REFERENCES "DB"."PT_OUTIL" ("CDE_PO") ON DELETE CASCADE DISABLE; 

Voir, je change juste la fin de celui-ci. Alors qu'est-ce qui se passe ici? Est-ce que je manque quelque chose? (s'il vous plaît ne pas bash si c'est quelque chose d'évident :)) Thx!

Répondre

0

Essayez en enlevant le DISABLE/ENABLE à la fin de votre commande

Selon le ADD CONSTRAINT reference, il ne marche pas semble être une « Activer/Désactiver » dans le cadre de la commande.

Je pense que c'est quelque chose que votre développeur Oracle ajoute à la fin (it being part of Oracle Syntax) et il pourrait être à l'origine du problème !!

+0

J'essaie sans PERMETTRE mais toujours le même message d'erreur. – B1ll0u

+0

Je vous donne le DDL généré pour créer la Table, peut-être que vous verrez quelque chose de bizarre ...: – B1ll0u

+0

@ B1ll0u - quel moteur db utilisez-vous dans MySQL? La table en question utilise-t-elle MyISAM ou InnoDB? – InSane

Questions connexes