Table Oracle créer erreur ORA-00904 identifiant invalide
C'est très intéressant, je ne sais pas pourquoi je me fais ORA-00904 identifiant invalide quand je suis en train de créer une table avec oracle.
CREATE TABLE animals
(
CONSTRAINT animal_id NUMBER(6) PRIMARY_KEY,
name VARCHAR2(25),
CONSTRAINT license_tag_number NUMBER(10) UNIQUE,
admit_date DATE NOT NULL,
adoption_id NUMBER(5),
vaccination_date DATE NOT NULL
);
- Si vous n'avez pas le nom de votre clé primaire, unique, clé étrangère, et de vérifier les contraintes explicitement, alors vous pourriez le regretter plus tard.
Vous devez vous connecter pour publier un commentaire.
Lors de la création de tables avec
CREATE TABLE
dans Oracle, vous disposez d'au moins quatre façons de spécifier des contraintes.En ligne de spécification
En ligne de spécification explicite des contraintes noms
Hors-ligne de spécification
Hors-ligne de spécification explicite des contraintes noms
Si vous n'avez pas explicitement spécifier des contraintes noms, ils sont générés automatiquement par le système, et de lire quelque chose comme
SYS_C0013321
. Je trouve le dernier moyen le plus lisible, parce que vous voyez, des contraintes qui sont créés, et pouvez les gérer à l'aide de noms conviviaux (e. g. l'aide de vueuser_constraints
).Par le façon, il ya une faute de frappe dans votre code: vous devez utiliser
PRIMARY KEY
au lieu dePRIMARY_KEY
.C'est bon code, vous devez supprimer
CONSTRAINT
mot:mais vous pouvez également utiliser les contraintes pour PK et UNIQUE comme ci-dessous:
Il est de bonne pratique d'utiliser les contraintes parce qu'ils vous donnent un nom convivial/courte description.
SQL Violon DÉMO
Je pense qu'il y a une erreur ici :
Attraper cet exemple :
Votre code supposons que :
CREATE TABLE d'animaux(
Vous pouvez vérifier l'exemple ici
PRIMARY KEY
au lieu dePRIMARY_KEY
.