create table tests
(id integer,
cur_date varchar2(20))
create or replace trigger sd
before insert on tests
for each rowbegin
select to_char(sysdate,'yyyy-mm') into :tests.cur_date from dual;
end;
(id integer,
cur_date varchar2(20))
create or replace trigger sd
before insert on tests
for each rowbegin
select to_char(sysdate,'yyyy-mm') into :tests.cur_date from dual;
end;
解决方案 »
- 请高手帮我分析下下面两个SQL语句为什么执行效率有差异??
- 这样的sql查询合并怎么写
- 自动备份的脚本的执行问题!急!在线等
- [求助] 如何取得某个日期(yyyy-mm-dd)的下一天?
- 急!将账户1的查询结果插入到账户2的表中
- 怎么在ORACLE中导入已经有了的ORACLE数据库呢?急!
- Trigger在用:New.col的時候獲取值出問題
- 求一按年龄段统计的SQL语句写法
- 请问我从oracle网站上下了一个oracle9,请问这需要注册码?谢谢了,初次来,放点分!
- 我的oracle为什么起不动了?
- 该sql如何用not exists 替换 not in
- Oracle 中使用表分区,让系统自动生成表分区的名称,那么怎么通过语句查出,分区的名称?
before insert on tests
for each rowbegin
select to_char(sysdate,'yyyy-mm') into :tests.cur_date from dual;
end;
错误见红色部分,
你以前玩什么数据库的 这个写法太牛了
你别告诉我你想通过这个语句往tests里插数据啊
2 (id integer,
3 cur_date varchar2(20));
Table created
SQL>
SQL> create or replace trigger sd
2 before insert on tests
3 for each row
4
5 begin
6 select to_char(sysdate,'yyyy-mm') into :new.cur_date from dual;
7 end;
8 /
Trigger created
SQL> INSERT INTO tests(ID)VALUES(1);
1 row inserted
SQL> SELECT * FROM tests;
ID CUR_DATE
--------------------------------------- --------------------
1 2010-08
SQL>
定义:
create trigger biufer_employees_department_id
before insert or update
of department_id
on employees_copy
referencing old as old_value
new as new_value
for each row
when (new_value.department_id<>80 )
begin
:new_value.commission_pct :=0;
end;
/Referencing 子句:
执行DML语句之前的值的默认名称是 :old ,之后的值是 :new
insert 操作只有:new
delete 操作只有 :old
update 操作两者都有referencing子句只是将new 和old重命名为new_value和old_value,目的是避免混淆。比如操作一个名为new的表时。
作用不很大。
:new类似于sql server的inserted表
:old类似于sql server的deleted表