我正在尝试auto_increment下表中的cust_id字段:
CREATE TABLE A113222813_CUSTOMERS (
CUST_ID NUMBER(10) PRIMARY KEY,
CUST_FNAME VARCHAR2(20),
CUST_SNAME VARCHAR2(20),
CUST_UNAME VARCHAR2(30) NOT NULL,
CUST_PASS VARCHAR2(40) NOT NULL
)
我创建了以下序列并触发处理:
CREATE SEQUENCE CUST_SEQ START WITH 1 INCREMENT BY 1 NOCYCLE;
CREATE OR REPLACE TRIGGER CUST_TRG
BEFORE INSERT ON A113222813_CUSTOMERS
FOR EACH ROW
BEGIN
:NEW.CUST_ID := CUST_SEQ.NEXTVAL;
END;
但它不断抛出以下错误:
Error(2,30): PLS-00357: Table,View Or Sequence reference 'CUST_SEQ.NEXTVAL' not allowed
in this context
知道我做错了吗?
答案 0 :(得分:0)
在11g之前这是不可能的。您可以在11g之前的常规作业中使用sequence_name.NEXTVAL,以及以下内容:
select CUST_SEQ.NEXTVAL into :NEW.CUST_ID from dual;