Oracle触发器

莫斯科下着悲伤的雨 2018-12-10 10:43:19
表A,有列 a:主键,VARCHAR2(10),b:VARCHAR2(50),c:VARCHAR2(50),d:VARCHAR2(50);向表导入Execl表数据5条,其中3条b列数据一样。问:利用Oracle触发器,让b列的重复数据不再重复,有一样的时候,在后面自动添加-1、-2、-3······。例如:b列:123、123、111、123、1224。触发器触发后:123-1、123-2、111、123-3、1224。有几条重复数据,“-”后面就自动添加到几

...全文
186 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Wazy_csdn 2018-12-13
  • 打赏
  • 举报
回复
引用 6 楼 的回复:
i 代指是什么
:new.b:=:new.b||'-'||i; 这句话你看不出来i是什么吗
  • 打赏
  • 举报
回复
i 代指是什么
Wazy_csdn 2018-12-10
  • 打赏
  • 举报
回复
引用 4 楼 莫斯科下着悲伤的雨 的回复:
if inserting then select count(*) into i from table_a A where substr(A.b,0,length(:new.b))=:new.b; if i=0 then else i=i+1; :new.b:=:new.b||'-'||i; end if end if 这样就可以了么
就这样
  • 打赏
  • 举报
回复
if inserting then
select count(*) into i from table_a A where substr(A.b,0,length(:new.b))=:new.b;
if i=0 then

else
i=i+1;
:new.b:=:new.b||'-'||i;

end if
end

这样就可以了么
Wazy_csdn 2018-12-10
  • 打赏
  • 举报
回复
引用 2 楼 莫斯科下着悲伤的雨 的回复:
“insert into .... value....”这里写增加语句吗?insert into A(b,c,d) values('','','')?
不写,那是我写给你理解的,你把Insert into...删掉就是还有后面的Value
  • 打赏
  • 举报
回复
“insert into .... value....”这里写增加语句吗?insert into A(b,c,d) values('','','')?
Wazy_csdn 2018-12-10
  • 打赏
  • 举报
回复
if inserting then
    select count(*) into i from table_a A where substr(A.b,0,length(:new.b))=:new.b;
    if i=0 then
      insert into ....
      value....
    else
      i=i+1;
      :new.b:=:new.b||'-'||i;
      insert into....
      value....
  end if;

17,082

社区成员

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

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