UserInfo(UserID,UserName,DepartID,SerialNum,...)
对于一个部门(DepartID相同)下的用户,我要让其序号SerialNum保持连续,就建立了一个触发器:CREATE OR REPLACE TRIGGER "KSOURCE".TRUSERINFO_INSERT AFTER
INSERT ON "KSOURCE"."USERINFO" REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW
Declare
v_SerialNum Number;
Begin
Select Count(*) Into v_SerialNum From UserInfo Where DepartID=:New.DepartID;
if (:New.SerialNum <> v_SerialNum) Then
Update UserInfo Set SerialNum=v_SerialNum Where UserID=:New.UserID;
end if;
End;这样,如果用户输入的SerialNum不连续了,自动改成连续的,但Insert时却出现如下提示:
表 KSOURCE.USERINFO 发生了变化, 触发器/函数不能读它
对于一个部门(DepartID相同)下的用户,我要让其序号SerialNum保持连续,就建立了一个触发器:CREATE OR REPLACE TRIGGER "KSOURCE".TRUSERINFO_INSERT AFTER
INSERT ON "KSOURCE"."USERINFO" REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW
Declare
v_SerialNum Number;
Begin
Select Count(*) Into v_SerialNum From UserInfo Where DepartID=:New.DepartID;
if (:New.SerialNum <> v_SerialNum) Then
Update UserInfo Set SerialNum=v_SerialNum Where UserID=:New.UserID;
end if;
End;这样,如果用户输入的SerialNum不连续了,自动改成连续的,但Insert时却出现如下提示:
表 KSOURCE.USERINFO 发生了变化, 触发器/函数不能读它
解决方案 »
- 关于vchar2类型,一个汉字占多少长度
- ORACLE OUI-10091的错误
- 为什么一台机器上面的PL/SQL、c#、oracle客户端工具 数据不同步
- 请助:ORA-01841错误
- pl/sql中 select into 变量 --该变量是否可以是数组或相当于数组
- 关于分析函数(急求sql)
- 关于给分区表建立主健的问题!,在线等!!!!!!
- 如何指定一个过程在个一个时间执行一次????
- sun 的3310磁盘阵列 LGWR: terminating instance due to error 340
- 求助ora-06550错误代码?
- 请教:如何用Oracle10g客户端连接Oracle9i数据库服务器
- oracle删除数据后,空间不释放如何解决???
CREATE OR REPLACE TRIGGER "KSOURCE".TRUSERINFO_INSERT AFTER
INSERT ON "KSOURCE"."USERINFO" REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW
Declare
v_SerialNum Number;
[font]PRAGMA AUTONOMOUS_TRANSACTION;[/font]
Begin
Select Count(*) Into v_SerialNum From UserInfo Where DepartID=:New.DepartID;
if (:New.SerialNum <> v_SerialNum) Then
Update UserInfo Set SerialNum=v_SerialNum Where UserID=:New.UserID;
end if;
End;
你试试这个解决方式叻,不过对于你这case,确实比较复杂,在你delete一条中间的数据时,确实还要控制其他的serialnum也随之发生变化。这样才能保持连续
==================================================================
Inthirties关注Oracle数据库 维护 优化,安全,备份,恢复,迁移,故障处理如果你需要帮助或想和我一起学习的请联系
联系方式QQ:370140387
电子邮件:[email protected]
网站: http://www.inthirties.com
==================================================================
Inthirties关注Oracle数据库 维护 优化,安全,备份,恢复,迁移,故障处理 如果你需要帮助或想和我一起学习的请联系
联系方式QQ:370140387
电子邮件:[email protected]
网站: http://www.inthirties.com
, tbl.COL1
, tbl.COL2
FROM ( SELECT *
FROM target_table
ORDER BY ...
) tbl
;我觉得你的这个Trigger可能没有必要哦