SQL能否在一个提交中更新多条记录??

Nirvana0 2004-12-21 09:47:56
小弟有个问题:
比如
update tblA set Age='20' where Name='AA';
update tblA set Age='30' where Name='BB';
update tblA set Age='40' where Name='CC';
这三条语句能否改成,访问数据库一次就完成呢?
...全文
223 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
langmanhufei 2004-12-23
  • 打赏
  • 举报
回复
默认值是null还是age看具体情况了
lwq_soft 2004-12-23
  • 打赏
  • 举报
回复
其实为了适应开发的要求 最好把它放到一个存储过程中这样可以避免很多问题
如 create or replace procedure updatetblA(v_Age1 in varchar2,v_Age2 in varchar2,v_Age3 in varchar2)
begin
update tblA set Age=v_Age1 where Name='AA';
update tblA set Age=v_Age2 where Name='BB';
update tblA set Age=v_Age3 where Name='CC';
/*如果要求必须都执行的话加上
commit*/
end;

zhpsam109 2004-12-22
  • 打赏
  • 举报
回复
up!
wangybyangxr 2004-12-22
  • 打赏
  • 举报
回复
谢谢ORARichard(没钱的日子......)的提醒。
yingqing 2004-12-22
  • 打赏
  • 举报
回复
update tblA set Age = DECODE(NAME,'AA','20', 'BB','30', 'CC','40', '')
NinGoo 2004-12-22
  • 打赏
  • 举报
回复
千万不要犯不加条件的错误,不然哭都来不及,呵呵
ORARichard 2004-12-22
  • 打赏
  • 举报
回复
update tblA set Age = DECODE(NAME,'AA','20', 'BB','30', 'CC','40', Age)

to libin_ftsafe(子陌红尘)
你这句话的确没错了,不过如果表中有百万条数据,那岂不是要更新百万条了,最好的方法还是一楼的

to wangybyangxr(王永斌)
你写的第二句还是有问题,你参照libin_ftsafe(子陌红尘)的句子再想想
子陌红尘 2004-12-22
  • 打赏
  • 举报
回复
update tblA set Age = DECODE(NAME,'AA','20', 'BB','30', 'CC','40', Age)
etheltim 2004-12-22
  • 打赏
  • 举报
回复
支持onejune4450(中文字符)
yxxx 2004-12-22
  • 打赏
  • 举报
回复
千万不要犯不加条件的错误,不然哭都来不及,呵呵

没错,我曾经忘写了条件,结果一个关键字段全被更新成一个值了,吐了一天血;(
liuyi8903 2004-12-21
  • 打赏
  • 举报
回复
赞同ORARichard and onejune4450
wangybyangxr 2004-12-21
  • 打赏
  • 举报
回复
谢谢ORARichard(没钱的日子......)的提醒。

update tblA set Age = DECODE(NAME,'AA','20', 'BB','30', 'CC','40', '')

最后一个空格表示与前面不匹配的话用 DEFAULT
ORARichard 2004-12-21
  • 打赏
  • 举报
回复
要用onejune4450(中文字符)的
wangybyangxr(王永斌)的句子少个条件,会造成将NAME非'AA','BB','CC'的AGE更新为NULL
wangybyangxr 2004-12-21
  • 打赏
  • 举报
回复
update tblA set Age = DECODE(NAME,'AA','20', 'BB','30', 'CC','40')
onejune4450 2004-12-21
  • 打赏
  • 举报
回复
update tblA set Age=decode(Name,'AA','20','BB','30','CC','40')
where Name in ('AA','BB','CC');

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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