17. 02.
我创建了一个系统触发器,记录用户登录时的信息,代码如下:
create or replace trigger tr_LogOn_all
after logon on database
begin
insert into t_logon
values('1', user, systimestamp,'tr_LogOn_all');
end;
现在的问题是:为什么登录一次,会触发两次这个触发器,在表中会写入两条记录?
请大家帮帮忙,{dy}次接触系统触发器,xx摸不着头脑,谢谢大家!
我知道了,SYSMAN后台有进程,每隔一分钟左右登录一次数据库,所以被记录下来。
触发器没问题。
但是我这写入表中的都是同一个普通用户scott,并不是sysman或是sys啊?
给出你的数据,时间xx点。
另外,请确认该数据库仅你自己在操作。
我表中的数据:
LOG_ID USER_NAME LOGON_TIME LOGON_MSG
—— ———- ——————————— ———————————
1 SCOTT 09-2月 -10 11.54.50.468000 上午 tr_LogOn_all
1 SCOTT 09-2月 -10 11.54.50.562000 上午 tr_LogOn_all
你是咋登录的?
完整的操作步骤
用命令登录的:
connect scott/oracle
我找到原因了。之前我都是在pl/sql developer的command窗口中用命令进行登录的,每次都会触发两次。但是如果在sql *plus中用命令登录,只会触发一次。
原因找到了,可是这是为什么呢?
标签: , , ,