我在toad中执行了以下查询:
CREATE TABLE ACTWEB.usuarios
(
id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),
matricula INTEGER,
nome CHAR(50) NOT NULL,
senha CHAR(50),
nivel INTEGER,
maleta INTEGER,
email CHAR(50),
acessos INTEGER,
datacriacao DATE,
dataalteracao DATE
UNIQUE (id)
)
LOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL;
得到了这条ORA
消息:
ORA-00907缺少右括号
原因:输入的左括号没有右括号,或者括号中包含额外信息。所有括号必须成对输入 操作:更正语法并重试该语句。
答案 0 :(得分:0)
您的语法中有一些错误。 NOT NULL
必须在IDENTITY
子句之后发生。必须在没有,
的情况下指定范围,并且UNIQUE
关键字必须直接显示在列中:
CREATE TABLE ACTWEB.usuarios
(
id INTEGER GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) NOT NULL UNIQUE,
matricula INTEGER,
nome CHAR(50) NOT NULL,
senha CHAR(50),
nivel INTEGER,
maleta INTEGER,
email CHAR(50),
acessos INTEGER,
datacriacao DATE,
dataalteracao DATE
)
LOGGING NOCOMPRESS NOCACHE NOPARALLEL;
答案 1 :(得分:0)
您指定unique
不正确,要解决此问题,您有几种方法:
首先,明确创建唯一键:
create table tab1(
id number(10),
CONSTRAINT id_uk UNIQUE (id)
)
其次,创建唯一键作为列的选项:
create table tab1(
id number(10) UNIQUE
)
第三,使用alter table
添加唯一键约束:
create table tab1(
id number(10)
);
alter table tab1 add constraint id_uk unique(id);
Forth,通过创建唯一索引隐式创建唯一键:
create table tab1(
id number(10)
);
CREATE UNIQUE INDEX id_uk ON tab1 (id);