oracle如何保证一列中,一个值的唯一性

nameagestatus张三150李四501王二361我想在给张三设置状态=1的同时,更新表中所有status=1的人让他们status=2,只保证这一列中只有1个人状... name age status
张三 15 0
李四 50 1
王二 36 1

我想在给张三设置状态=1 的同时,更新表中所有status=1的人让他们status=2,只保证这一列中只有 1个人状态=1
只在oracle中做,不在程序中做
解决了还会加分
展开
 我来答
百度网友9d41c53
2017-05-22 · TA获得超过489个赞
知道小有建树答主
回答量:359
采纳率:73%
帮助的人:210万
展开全部

--思路做个存储过程就行,取名UpdateStatus,执行这个存储过程,传参就是这个人名,

--第一步,给所有status=1的人update成status=2,

--第二步,给name=参数的人,update status =1

--然后你只需要exec UpdateStatus这个存储过程,代码如下


 create procedure UpdateStatus(@name varchar(20))
as
Begin
   update  tablename set status =2 where status =1
    update tablename set status =1 where name =@name
Exception
    When others then
       Rollback;
End;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式