多表同时更新数据如何实现

小白愛學習 2011-04-09 08:44:19
最近在做一个管理信息系统 里面有多张表 例如 A,B,C
各表里面的列:A_ID, B_ID, C_ID, 是相等的~
现在我要实现 新建一个A_ID 时 B_ID,C_ID 同时更新!
例如新建一个 A_ID=2008 则 B,C两个表中同时加入“2008”这个数据
我之前想到的方法有:(1)触发器 ;写完触发器 发现触发不了...
(2)外键级联 ;发现也不行,而且不能同步更新引发外键约束错误。
望指教....
...全文
105 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wing013 2011-04-12
  • 打赏
  • 举报
回复
触发器批量更新时,只触发到最后的一条
缪军 2011-04-09
  • 打赏
  • 举报
回复
外键约束里,有级联更新,和级联删除功能,这个是系统事务,比你写触发器要可靠多了,
触发器本身是可靠的,但是你写了代码就难说了,很多程序员写的触发器根本就不能批更新;

另外,如果你存在级联更新的需求,那么要看看,可能数据结构的设计还有给进余地
小白愛學習 2011-04-09
  • 打赏
  • 举报
回复
谢谢..我想实现的是新建 删除 修改三个功能一体~
Billy 2011-04-09
  • 打赏
  • 举报
回复
触发器可以实现的,但不知道你A,B,C表结构,不知道你的同时更新是指同时新增,修改,删除?
下例仅新增:
 create table  a(aid varchar(10))
create table b(bid varchar(10))
create table c(cid varchar(10))

create trigger a_tg on a
for insert
as
insert into b select * from inserted
insert into c select * from inserted


insert into a values('2001')

select * from a
select * from b
select * from c

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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