Stack Overflow en español Asked by Cutu on December 14, 2021
Que tal gente, espero que me puedan ayudar a resolver este problema aunque sea algo tonto, estoy intentando crear una tabla con un ID del tipo Identity y estoy obteniendo el siguiente error:
Error que empieza en la línea: 1 del comando :
CREATE TABLE USUARIO (
userID NUMBER GENERATED ALWAYS AS IDENTITY (START WITH 100 INCREMENT BY 1),
username VARCHAR2(32) NOT NULL,
pass VARCHAR2(32) NOT NULL,
nickname VARCHAR2(32) NOT NULL,
email VARCHAR2(32) NOT NULL,
userType CHAR(5) CONSTRAINT CH_userType CHECK(userType IN ('comun', 'boss')),
CONSTRAINT PK_usuario
PRIMARY KEY (userID)
);
Informe de error -
ORA-02000: missing ( keyword
02000. 00000 - "missing %s keyword"
Al parecer me falta un “(” pero no logro ver en donde, todo parece estar en orden, espero que puedan ayudarme, gracias de antemano.
El error se debe a la versión de Oracle que usas. La habilidad de definir una columna como un IDENTITY
es nuevo con la versión 12.
En las versiones anteriores, lo mejor que puedes hacer para aproximar la funcionalidad es definir un SEQUENCE
que usas para asignar a la columna por medio de un trigger.
Aquí te dejo un ejemplo:
create sequence usuario_seq START WITH 100 INCREMENT BY 1;
/
CREATE TABLE USUARIO (
userID NUMBER,
username VARCHAR2(32) NOT NULL,
pass VARCHAR2(32) NOT NULL,
nickname VARCHAR2(32) NOT NULL,
email VARCHAR2(32) NOT NULL,
userType CHAR(5) CONSTRAINT CH_userType CHECK(userType IN ('comun', 'boss')),
CONSTRAINT PK_usuario
PRIMARY KEY (userID)
);
/
create trigger usuario_trigger
before insert on usuario
for each row
begin
:new.userID := usuario_seq.nextval;
end;
/
Referencias:
Answered by sstan on December 14, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP