2013-05-19 3 views
1

Je suis en train de modifier une table dans Oracle SQL * Plus J'ai été en mesure de créer une table en utilisant l'ordre des mots réservés en utilisant des guillemets. J'ai également pu ajouter une contrainte de clé primaire. Quand il s'agit d'ajouter la clé étrangère, j'ai cette erreur. J'ai fait des recherches sur ce que je pourrais faire de mal, mais je ne trouve pas de réponse satisfaisante. J'apprécierai toute aide. Merci!Erreur lors de l'ajout de la contrainte de clé étrangère

SQL> ALTER TABLE "ORDER" 
    2 ADD CONSTRAINT ORDER_FK 
    3 FOREIGN KEY(C_NO) 
    4 REFERENCES CUSTOMER(C_NO) 
    5 ON DELETE RESTRICT; 
ON DELETE RESTRICT 
      * 
ERROR at line 5: 
ORA-00905: missing keyword 
+0

Vous pourriez envisager d'adopter une convention de noms pluriels pour les tables, non seulement parce qu'elles contiennent généralement plusieurs éléments, mais parce que vous êtes beaucoup moins susceptible de heurter un mot réservé. http://docs.oracle.com/cd/B28359_01/appdev.111/b31231/appb.htm –

Répondre

4

Oracle ne supporte pas les "restrict"

Selon Oracle les options sont les suivantes: (1) en omettant l'ON SUPPRIMER (2) SUPPRIMER CASCADE et (3) DELETE SET NULL.

Je crois que l'omission de ON DELETE est la plus proche de ON DELETE RESTRICT.

+0

Si vous voulez juste empêcher la suppression ... du lien référencé: "Les définitions de clé étrangère dans les deux variantes de cette instruction omet la clause ON DELETE, obligeant Oracle à empêcher la suppression d'un département si un employé travaille dans ce département. " –

Questions connexes