请问:
如何写一个触发器:当数据库中新增一条数据的时候,将这条数据的一个字段值赋值给另一个字段值。我知道要有一个update语句,但是不知道怎么写如何判断是否新增了数据谢谢!~~oracle 触发器
如何写一个触发器:当数据库中新增一条数据的时候,将这条数据的一个字段值赋值给另一个字段值。我知道要有一个update语句,但是不知道怎么写如何判断是否新增了数据谢谢!~~oracle 触发器
解决方案 »
- 下面语句怎么写的啊??????
- 请问:连接oracle错误ORA-01034,ORA-27101
- 这个过程有什么问题??谢谢!!
- 请高手数据库导入导出错误
- 关于物化视图定时更新的问题。
- 数据导入库的问题??
- oracle9i for windows2000,中有svrmgrl命令吗??
- 菜鸟求教:奇怪的问题,关于date类型
- 使用oracle 9i 数据库,在asp 与oracle 9i数据库的连接,使用adodb.connection ,但是提示不能连接数据库,使用的是odbc配置的数据源,是
- pl/sql问题求大神指导
- 求教一个sql语句关于min,max函数查询的问题
- 求助,存储过程调试错误
before insert or update on TABLE_A
for each row
begin
select SEQ_TEST_VERSION.nextval into :new.version_num from dual;
end ;
--建立测试表
create table tb1(c1 int,c2 nvarchar2(20));--插入测试数据
insert into tb1 values (1,'aa');
insert into tb1 values (2,'bb');
insert into tb1 values (3,'cc');
commit;--创建历史表
CREATE TABLE tb1_his AS SELECT * FROM tb1 WHERE 1=2;
--创建触发器
CREATE OR REPLACE TRIGGER tr_del_tb1
BEFORE DELETE OR UPDATE --指定触发时机为删除操作前触发
ON tb1
FOR EACH ROW --说明创建的是行级触发器
BEGIN
--如果是删除数据 将删除的数据插入到历史表
IF DELETING then
INSERT INTO tb1_his(c1,c2) VALUES( :old.c1,:old.c2);
ELSIF UPDATING IF
--执行更新操作
END IF
END;DELETE tb1 WHERE c1=2;
commit;
--查询执行后的数据
select * from tb1;
select * from tb1_his ; --删除测试表
DROP TABLE TB1;
DROP TABLE TB1_HIS;
BEFORE DELETE
ON tb1
FOR EACH ROW
BEGIN
INSERT INTO tb1_his(c1,c2) VALUES( :old.c1,:old.c2);
END;
谢谢~~我自己解决了create or replace trigger tr_userinfo
before insert on m_userinfo
for each row
declare
-- local variables here
begin
:new.STAFFID:=:new.LOGINID;
end tr_userinfo;