【发布时间】:2013-10-25 08:32:18
【问题描述】:
create table account_type
(
acct_type number(3) primary key,
acct_desc Varchar2(30) not null CHECK (acct_desc IN('savings','salary','current','credit')),
acct_wd_limit number(10)
);
create sequence acct_seq;
CREATE OR REPLACE TRIGGER acct_pk
BEFORE INSERT ON account_type
FOR EACH ROW
WHEN (new.acct_type IS NULL)
BEGIN
SELECT acct_seq.NEXTVAL
INTO :new.acct_type
FROM account_type;
END;
在 account_type 上插入之前,我在行上遇到错误。不知道为什么
我也试过了
CREATE OR REPLACE TRIGGER acct_pk
BEFORE INSERT ON account_type
FOR EACH ROW
WHEN (new.id IS NULL)
BEGIN
SELECT acct_seq.NEXTVAL
INTO :new.id
FROM account_type;
END;
即使这样做也会给我一个错误
create sequence acct_pk
start with 1
increment by 1
max value 999
min value 1
no cycle;
谢谢
【问题讨论】:
-
您在创建序列中的序列名称应为 acct_seq。
-
如果您不向我们显示因尝试运行您的语句而导致的错误消息,我们如何回答这个问题?也许你的语法是错误的。也许您没有创建表和序列的正确权限。很多不同的事情都可能是错误的。