如何用Oracle 的触发器做一个自动序号

freddy2003 2003-09-19 04:46:53
在一个表中的主键是自动序号,在用Oracle 的Sequence的时候, 可能由中间有删除等操作,所以自动序号不连续,所以请问可不可以用触发器做一个自动序号来产生连续的自动序号:
我的语句如下:

create or replace trigger test
before insert on tameter
for each row
declare
record_count integer;
begin
select count(ZZBH) into record_count from Tameter;
if record_count=0 then
:new.ZZBH:=1;
else
select max(ZZBH)+1 into :new.ZZBH from Tameter;
end if;
end test;

可是结果总是报错,请高手指点!

...全文
34 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
onejune4450 2003-09-19
  • 打赏
  • 举报
回复
当记录被删除后,程序给出的ZZBH会重复,所以出错。
需要一个补号程序,新记录把断号连上?还是删除后号码重排?。
Macyli 2003-09-19
  • 打赏
  • 举报
回复
建议,用一个函数来写啦

17,089

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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