请问:
如何写一个触发器:当数据库中新增一条数据的时候,将这条数据的一个字段值赋值给另一个字段值。我知道要有一个update语句,但是不知道怎么写如何判断是否新增了数据谢谢!~~oracle 触发器
如何写一个触发器:当数据库中新增一条数据的时候,将这条数据的一个字段值赋值给另一个字段值。我知道要有一个update语句,但是不知道怎么写如何判断是否新增了数据谢谢!~~oracle 触发器
解决方案 »
- 实在弄不出来了!!希望各位帮帮忙!!
- 启动 Database Control 时出错
- 请问:oracle恢复数据的时间限度长度?
- 怎么写SQL语句,可以把字段名和记录一起查出来啊?
- 我想在select 查询语句的结果集中,增加一个id字段,标记记录的顺序号,怎么办呢?
- 请问,能用SQL语句来实现?若能,该如何写?
- 这个什么问题啊? 说我语法有错!!
- 触发器里用循环怎么写
- 哪位兄弟帮忙看看:在设置最大角色数时为什么会出现在ORA-32001错误!
- 如果字段A='D' 那么返回B,如果字段A='C',那么返回E,在SELECT 语句中怎么写,一时忘记了,
- 求教一个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;