oracle sql 某一字段如果没有就插入,如果有就不执行
假如我有一张表A:IDNAMEDETAILS1A_NAMEA_DETAILS2B_NAMEB_DETAILS……当我准备插入一条信息时,我想首先判断一下数据库里是否有NA...
假如我有一张表A:
ID NAME DETAILS
1 A_NAME A_DETAILS
2 B_NAME B_DETAILS
……
当我准备插入一条信息时,我想首先判断一下数据库里是否有NAME这个字段重名的现象,如果存在重名,则不执行插入,如果没有重名,就执行。
如当我执行insert into A(ID,NAME,DETAILS) values(:new.ID,'B_NAME','X_DETAILS');时,由于B_NAME表里已经存在,即使其他字段内容不同,仍然不执行任何操作(不插入)。
请问该如何写这样的判断语句?谢谢!
那我如果是NAME 和DETAILS都不能重复呢?就是两者同时重复,还能用unique索引吗? 展开
ID NAME DETAILS
1 A_NAME A_DETAILS
2 B_NAME B_DETAILS
……
当我准备插入一条信息时,我想首先判断一下数据库里是否有NAME这个字段重名的现象,如果存在重名,则不执行插入,如果没有重名,就执行。
如当我执行insert into A(ID,NAME,DETAILS) values(:new.ID,'B_NAME','X_DETAILS');时,由于B_NAME表里已经存在,即使其他字段内容不同,仍然不执行任何操作(不插入)。
请问该如何写这样的判断语句?谢谢!
那我如果是NAME 和DETAILS都不能重复呢?就是两者同时重复,还能用unique索引吗? 展开
3个回答
展开全部
建立触发器,INSTEAD OF代替插入,用merge怎么样,when not match就插入
追问
我也想写触发器,可惜功底不扎实。。。具体怎么写?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对 NAME 字段做 Unique 索引,随便插都插不进去了。
追问
可是我设置了之后执行就会报错,怎样不报错呢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把字段NAME设置为主键或者Unique索引,怎么样?
写个插入触发器吧
写个插入触发器吧
追问
怎么写呢
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询