mysql dbvisualizer_mysql - 错误DbVisualizer创建触发器 - 堆栈内存溢出

据我所知,这是错误的:

SELECT 01Q00.NEXTVAL INTO :NEW.ID_01 FROM DUAL;

因为它是无效的序列名称-应该以字母作为第一个字符,而不是数字。 这是一个例子:

SQL> create table t01

2 (id_01 number,

3 fecalt_01 date,

4 fecmod_01 date

5 );

Table created.

SQL> create sequence 01q00;

create sequence 01q00

*

ERROR at line 1:

ORA-02277: invalid sequence name

如果我们忽略该错误,请创建一个触发器:

SQL> create or replace trigger tg_t01_01

2 before insert on t01

3 for each row

4 begin

5 :new.fecalt_01 := sysdate;

6 :new.fecmod_01 := sysdate;

7 select 01q00.nextval into :new.id_01 from dual;

8 end;

9 /

Warning: Trigger created with compilation errors.

SQL> show err

Errors for TRIGGER TG_T01_01:

LINE/COL ERROR

-------- -----------------------------------------------------------------

4/3 PL/SQL: SQL Statement ignored

4/15 PL/SQL: ORA-00923: FROM keyword not found where expected

好的,让我们修复序列名称并重新创建触发器(使用新的序列名称):

SQL> create sequence seq01;

Sequence created.

SQL> create or replace trigger tg_t01_01

2 before insert on t01

3 for each row

4 begin

5 :new.fecalt_01 := sysdate;

6 :new.fecmod_01 := sysdate;

7 select seq01.nextval into :new.id_01 from dual;

8 end;

9 /

Trigger created.

SQL>

看起来还可以,是吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值