暂无图片
分享
huhano11
2019-10-23
oracle 触发器语法问题

创建序列以及触发器,每次插入数据ID自增:
CREATE SEQUENCE tb_announcement_sqe START with 1 increment by 1;
CREATE OR REPLACE TRIGGER announcement_trigger
BEFORE INSERT ON tb_announcement
FOR EACH ROW
BEGIN
updata tb_announcement set announcementID = tb_announcement_sqe.nextval;
END;

亲爱的、敬爱的大佬,你好,我老师说代码中的触发器有明显的错误,我也不知道错在哪了,希望能够指正一下,万分感谢!!!(明天就要交作业啦)

收藏
分享
3条回答
默认
最新
章芋文

感觉你有些概念还没有弄明白哦,before insert怎么可以update呢,再说update也没有where条件吧。

正确的做法是在insert之前讲announcementID替换成tb_announcement_sqe的下一个值,如下:

CREATE OR REPLACE TRIGGER announcement_trigger BEFORE INSERT ON tb_announcement FOR EACH ROW BEGIN SELECT tb_announcement_sqe.nextval INTO :new.announcementID FROM dual; END;
暂无图片 评论
暂无图片 有用 0
huhano11

非常感谢 ()

暂无图片 评论
暂无图片 有用 0
墨天轮
问题已关闭: 问题已经得到解决
暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏