请问这个功能如何在oracle中实现.解决后马上给分
CREATE TABLE AAA
(
ID int IDENTITY (1, 1) ,
NAME varchar (50) NULL ,
KEY1_OLD varchar(255) NULL,
PRIMARY KEY(ID)
)
CREATE TABLE BBB
(
ID int ,
NAME varchar(50),
KEY2_NEW varchar(255)
)
CREATE TABLE TEST
(
ID int ,
NAME varchar(100) NULL,
AGE int NULL
PRIMARY KEY(id)
)
INSERT INTO TEST VALUES(100, 'AA ',20);
INSERT INTO TEST VALUES(101, 'BB ',20);
INSERT INTO TEST VALUES(102, 'CC ',20);
INSERT INTO TEST VALUES(103, 'DD ',20);
对表test更新进行触发
分两种情况:
a:当直接修改主键时,需在AAA 表种记录如下信息;
执行update TEST SET ID=1 WHERE NAME= 'AA '后;
第一需求:在AAA表需有如下记录
ID NAME KEY1_OLD
111 id 1
第二需求:在BB表需有如下记录
ID NAME KEY2_NEW
111 id 100
说明:
AAA表中id为自增长类型;
AAA与BBB中的ID在关联的;
NAME就是主键或者其他字段名称;
KEY1_OLD 与KEY2_NEW为主键修改前的值与修改后的值.
b:当修改其他字段时(除主键外)时,需在AAA
a:当直接修改主键时,需在AAA 表种记录如下信息;
执行update TEST SET NAME= 'EEEEEEE ' WHERE ID=101;后;
第一需求:在AAA表需有如下记录
ID NAME KEY1_OLD
112 id 101
第二需求:在BB表需有如下记录
ID NAME KEY2_NEW
112 NAME NULL
说明:
AAA表中id为自增长类型;
AAA与BBB中的ID在关联的;
AAA表中的name值为主键字段名称;
BBB表中的name值为本次修改的字段名称.
请问如何实现.谢谢.
------解决方案--------------------SQL Server里的Identity列可以用Oracle中的Sequence对象来实现。