首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自Oracle数据库的SQL过程中的案例中的"If not exist"-condition

来自Oracle数据库的SQL过程中的案例中的"If not exist"-condition
EN

Stack Overflow用户
提问于 2016-06-23 18:59:51
回答 2查看 558关注 0票数 0

我对SQL- procedure还是个新手,但我已经写了一个在我的datatable中添加一行的过程。这可以很好地工作,但当我运行该过程两次时,我希望避免该行再次添加到基于Oracle-Database的datatable中。所以我的问题是,如何在case命令中设置“如果已经存在”-condition。

我的代码看起来像这样:

代码语言:javascript
复制
...
case number

when 5 then 

/* if not exists` <<--- i need something to avoid doubled entrys */

  pi_event_line_add(5,'xxx' ....);


end case;
end procedure;
EN

回答 2

Stack Overflow用户

发布于 2016-06-23 19:16:09

一种解决方案是先查询表,然后再决定插入。像这样:

代码语言:javascript
复制
declare cnt number;

begin
select count(*) into cnt from your_table where id = 5;

if cnt = 0 then
   pi_event_line_add(5,'xxx'...);
end if;

此外,如果存储"5“的列确实应该是唯一的,那么您可能希望在该列上添加唯一约束。

票数 0
EN

Stack Overflow用户

发布于 2016-06-23 19:38:31

pi_event_line_add中使用MERGE语句,而不是INSERT。在MERGE中,只实现语句的WHEN NOT MATCHED INSERT部分。

祝你好运。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37989696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档