SQL数据库中如何从A表自动更新数据到B表?
假设有两张表,A表中有销售订单号,销售日期,货品名称,规格,型号,数量,销售单价,销售金额,审核人字段,B表有订单号,销售日期,货品名称,规格,型号,数量,销售单价,销售...
假设有两张表,A表中有销售订单号,销售日期,货品名称,规格,型号,数量,销售单价,销售金额,审核人 字段,B表有订单号,销售日期,货品名称,规格,型号,数量,销售单价,销售金额,订单是否下达 字段, 希望当A表有新插入数据时并且审核人不为空时,自动更新到B表,当A表审核人为空时,自动删除B表中对应的数据,是如果B表中订但单是否下达标志为Y时,则不删除,当B表中订单是否下达标志为空时,则删除。
展开
6个回答
展开全部
SQL不能做这样的逻辑判断吧,应该使用java语言或者其他语言来控制判断吧,设置一下多表关系,然后在后台读出做判断,在通过使用hibernate关联关系,把表设成2个关联的对象。。。当你判断是需要增加的时候,把两个对象互相加到对方的对象中就可以(要注意的是在对象类:表中,要设定对方对象的属性),不知道能否给你带来有用的信息,望采纳。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
写一个insert触发器在A表上
自己根据想要的条件应该懂一点的就应该能写出来
insert触发器在你插入数据到A表的时候,你的数据在系统默认的inserted表中存着,你可以在这里面找条件
自己根据想要的条件应该懂一点的就应该能写出来
insert触发器在你插入数据到A表的时候,你的数据在系统默认的inserted表中存着,你可以在这里面找条件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要实现两个表之间的数据的自动更新,可以采用触发器来实现,触发器的实现方法:
1、A表有数据更新的时候自动更新B表:
create or replace trigger tg after update on A for each row
begin
update B set xx=xx where b.aid = a.id;
end;
/
2、A表插入数据时,B表更新数据:
create or replace trigger tgg after insert on A for each row
begin
insert B values(xxxx);
end;
/
如果不需要每条数据都跟新,只需要在每次A更新的时候更新B,可以将后面的for each row去掉。
1、A表有数据更新的时候自动更新B表:
create or replace trigger tg after update on A for each row
begin
update B set xx=xx where b.aid = a.id;
end;
/
2、A表插入数据时,B表更新数据:
create or replace trigger tgg after insert on A for each row
begin
insert B values(xxxx);
end;
/
如果不需要每条数据都跟新,只需要在每次A更新的时候更新B,可以将后面的for each row去掉。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
写个触发器trigger
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用触发器
create trigger 触发器名称
on A
as
begin
declare @审核人 varchar(100)
select @审核人 = 审核人 from inserted
if @审核人 <> null
insert B ( 列名全写出来 )
else
delete B where 条件 and 标志 <> 'Y'
end
create trigger 触发器名称
on A
as
begin
declare @审核人 varchar(100)
select @审核人 = 审核人 from inserted
if @审核人 <> null
insert B ( 列名全写出来 )
else
delete B where 条件 and 标志 <> 'Y'
end
追问
如果我只是从A表中选择几列来进行插入到B表,是否要写对应插入到B的哪几列的?
追答
插入的话不用写对应到表B的哪几列的
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询