怎么编写触发器?

msgsnd 2002-09-19 12:25:09
我有一个表test,主键是个流水号test_id,现在要在程序里插入一行,怎么自动生成这个id?
请高手指教?
...全文
86 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
bzszp 2002-09-19
  • 打赏
  • 举报
回复
第一步:创建SEQUENCE
create sequence s_country_id increment by 1 start with 1 maxvalue 999999999;
第二步:创建一个基于该表的before insert 触发器,在触发器中使用该SEQUENCE
create or replace trigger bef_ins_t_country_define
before insert on t_country_define
referencing old as old new as new for each row
begin
new.country_id=s_country_id.nextval;
end;
black_snail 2002-09-19
  • 打赏
  • 举报
回复
Try this :

create or replace trigger trg_contnr_list
BEFORE INSERT
ON contnr_list
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
declare
l_n_sq_number number(23);
Begin
select n_sq_cntnr_list.nextval into l_n_sq_number from dual;
:new.v_rowid := l_n_sq_number;
end;
yuxuan 2002-09-19
  • 打赏
  • 举报
回复
同意楼上

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧