[求助]求一多表同时修改SQL语句?

龙宜坡 2007-09-08 10:58:13
两表结构如下:
A
字段:AID,Name,FullName,BID(主键为AID,外键BID)
B
字段:BID,Name,FullName(主键为BID)
问题:
现在需要在更新A表Name,FullName字段内容的同时,也更新B表Name,FullName内容,
使当A.BID=B.BID时A.Name=B.Name,A.FullName=B.FullName???
1.请以一句SQL语句实现之,谢谢,初学!

2.删除的语句顺便也给写出来,谢谢!
...全文
245 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
welkiny_wen 2008-03-23
  • 打赏
  • 举报
回复
已只表A的一个字段output的数量为100,已经表B的字段名称的两个quantity为60、gross为80,修改表A的数量为50,表B的数量也同时更新?使用什么方法。
hm7921936 2007-09-08
  • 打赏
  • 举报
回复
create or replace trigger to_b_del()
after update on A
for each row
begin
update b set Name=(:new.Name),FullName=(:new,FullName) where BID=(:new.BID);
end

create or replace trigger to_b_update()
after delete on A
for each row
begin
delete from b where BID=(:old.BID);
end
lynn_wang 2007-09-08
  • 打赏
  • 举报
回复
A
字段:AID,Name,FullName,BID(主键为AID,外键BID)
B
字段:BID,Name,FullName(主键为BID)

---------------------------------------
試試:下面的SQL (連在一起的)
Update A set Name ='XXX',FullName ='YYYY' where AID ='ZZZ';
Update B set Name = (select name from a where AID ='ZZZ' ),
FullName =(select Fullname from a where AID ='ZZZ' )
where BID = ( select AID where AID ='ZZZ' )
龙宜坡 2007-09-08
  • 打赏
  • 举报
回复
谢谢,我说的时候你已经写了出来,再次感谢!
龙宜坡 2007-09-08
  • 打赏
  • 举报
回复
谢谢,大家,我吃完饭测试下结贴!

TO:lwjvince(Insert into you(memory)values(my all life))
触发器

我只知道触发器的作用,但是不会用!
请以代码赐教,再次感谢!
lwjvince 2007-09-08
  • 打赏
  • 举报
回复
笔误 上面的
create or replace tirgger to_b_del()
create or replace tirgger to_b_update()
应为
create or replace trigger to_b_del()
create or replace trigger to_b_update()
lwjvince 2007-09-08
  • 打赏
  • 举报
回复
--根据A表的更新对B表触发更新
create or replace tirgger to_b_update()
after update on A
for each row
begin
update b set Name=(:new.Name),FullName=(:new,FullName) where BID=(:new.BID);
end

--根据A表的删除对B表触发删除
create or replace tirgger to_b_del()
after delete on A
for each row
begin
delete from b where BID=(:old.BID);
end
BearRui 2007-09-08
  • 打赏
  • 举报
回复
update A,B
SET A.Name = '1' AND A.FullName='2' AND B.Name = '1' AND B.FullName='2'
WHERE A.BID=B.BID AND A.AID=1
BearRui 2007-09-08
  • 打赏
  • 举报
回复
A
字段:AID,Name,FullName,BID(主键为AID,外键BID)
B
字段:BID,Name,FullName(主键为BID)

sql语句试试这个

update A,B
SET A.Name = '1' AND A.FullName='2' AND B.Name = '1' AND B.FullName='2'
WHERE A.BID=B.BID AND AID=1

lsq667 2007-09-08
  • 打赏
  • 举报
回复
貌似偶的理解出问题了~~继续关注下~~
BearRui 2007-09-08
  • 打赏
  • 举报
回复
设置A表的外键BID的级联属性为级联更新和级联删除,就可以不用写如何代码,在删除或更新主表的时候,子表会自动更新和删除
lsq667 2007-09-08
  • 打赏
  • 举报
回复
update B set B.Name=A.Name, B.FullName=A.FullName where A.BID=B.BID
楼主是不是这个意思啊~~`
看的不是很明白
关注中,楼主说清楚点~~
lwjvince 2007-09-08
  • 打赏
  • 举报
回复
触发器
lsq667 2007-09-08
  • 打赏
  • 举报
回复
沙发先坐了再看~~~

62,242

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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