下面是一个sql脚本的代码片段,这给我带来了错误,我必须在表的primary_key上生成一个序列,而不必使用oracle中的触发器:
CREATE SEQUENCE t1_seq START WITH 1 INCREMENT BY 1;
DROP TABLE CPR_SOURCE_SYSTEM_METADATA;
CREATE TABLE CPR_SOURCE_SYSTEM_METADATA
(
SYSTEM_ID NUMBER(4) NOT NULL t1_seq.nextval,
SYSTEM_NAME VARCHAR2(200),
DATE_FORMAT VARCHAR2(200),
CREATED_BY VARCHAR2(200),
MODIFIED_BY VARCHAR2(200),
CREATED_ON NUMBER(20),
MODIFIED_ON NUMBER(20),
IS_DELETED VARCHAR2(1),
CONSTRAINT "CPR_SOURCE_SYSTEM_PK" PRIMARY KEY ("SYSTEM_ID")
);它给了我以下错误:
删除表CPR_SOURCE_SYSTEM_METADATA *第1行中的错误: ORA-00942:表或视图不存在 SYSTEM_ID数字(4)非空t1_seq.nextval,*第3行错误: ORA-00907:缺少右括号
找不到错误,有人能帮忙吗??
发布于 2017-09-14 12:24:03
SYSTEM_ID NUMBER(4) NOT NULL t1_seq.nextval,t1_seq.nextval段无效-您不能指定这样的自动递增列。
SQL解析器希望看到:
SYSTEM_ID NUMBER(4) NOT NULL,并抛出异常,因为逗号不是它期望的位置。
在Oracle12c中,您可以使用identity column,但在早期版本中,您需要:
https://stackoverflow.com/questions/46218885
复制相似问题