当改动一个表后另外一个表如何这样跟着改动

[复制链接]
查看11 | 回复1 | 2012-1-4 11:49:54 | 显示全部楼层 |阅读模式
表1数据如下:
YPBHMC
SLPFJPDS
001 白加黑
40 50

表2数据如下
XH YPBH MCSLPFJRKSJ
1
001 白加黑105 2004-05-10
2
001 白加黑155 2004-05-11
3
001 白加黑15 2004-05-12
4
001 白加黑85 2004-05-13
5
001 白加黑65 2004-05-14
表2记录数不确定,当更改表1PDS的时候,表2的记录根据时间从小到大的顺序,SL字段依次改变为如下:
XH YPBH MCSLPFJRKSJ
1
001 白加黑55 2004-05-10
2
001 白加黑105 2004-05-11
3
001 白加黑15 5 2004-05-12
4
001 白加黑205 2004-05-13
5
001 白加黑255 2004-05-14
请问用触发器如何实现?
回复

使用道具 举报

千问 | 2012-1-4 11:49:54 | 显示全部楼层
SQL> Create table tab1 ( YPBH varchar2(10) ,
2 MC varchar2(10) ,
3 SL number(2) ,
4 PFJ number(2) ,
5 PDS number(2));
Table created.
SQL> Insert intotab1 values ( '001' ,'白加黑' , 40, 5, 0);
1 row created.
SQL> commit;
Commit complete.
SQL>
SQL> Create table tab2 ( XH number(2) ,
2 YPBH varchar2(10) ,
3 MC varchar2(10) ,
4 SL number(2) ,
5 PFJ number(2) ,
6 RKSJ date);
Table created.
SQL>Insert intotab2 values ( 1, '001' ,'白加黑' , 10, 5, to_date('2004-05-10' , 'yyyy-mm-d
;
1 row created.
SQL> Insert intotab2 values ( 2, '001' ,'白加黑' , 15, 5, to_date('2004-05-11' , 'yyyy-mm-dd

1 row created.
SQL> Insert intotab2 values ( 3, '001' ,'白加黑' , 1, 5, to_date('2004-05-12' , 'yyyy-mm-dd'

1 row created.
SQL> Insert intotab2 values ( 4, '001' ,'白加黑' , 8, 5, to_date('2004-05-13' , 'yyyy-mm-dd'

1 row created.
SQL> Insert intotab2 values ( 5, '001' ,'白加黑' , 6, 5, to_date('2004-05-14' , 'yyyy-mm-dd'

1 row created.
SQL> commit;
Commit complete.

SQL> create or replace trigger trg_update_tab1
2after update of PDSon tab1
3for each row
4begin
5update tab2
6 setsl=
7(Select5*no from
8 ( select rowid id , rownum no
9from tab2
10where YPBH = :new.YPBH
11order by RKSJ )A
12where tab2.rowid = id ) ;
13
14
15
16
17end;
18/
Trigger created.
SQL> select xh ,sl from tab2;
XH SL
---------- ----------
1 10
2 15
3
1
4
8
5
6

SQL> update tab1 set pds =1;
1 row updated.
SQL> select xh ,sl from tab2;
XH SL
---------- ----------
1
5
2 10
3 15
4 20
5 25
SQL> commit;
Commit complete.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行