触发器:
CREATE OR REPLACE TRIGGER JJWGPS.xlzhxxb_tri after insert or update ON JJWGPS.JJWGPS_T_XLZHXXB_all
for each row
begin
if inserting then
INSERT INTO JJWGPS_T_XLBZXXB (select :new.XLBM,ZGXS,YTXS,DWXS,BXXS,JQXS,BZZLC,SXZLC,XXZLC,ZGFKSSJ,ZGFJSSJ,
WGFKSSJ,WGFJSSJ,ZGFDJG,WGFDJG,PSDJG,ZZ,YZ,CS,CX,FZCKGM,YJ,JJ,KSLCA,KSLCB,FKLC,SXPDLC,XXPDLC,SZPDLC,
XYGFKSSJ,XYGFJSSJ,BZ,SXXSSJ,XXXSSJ,XLLX ,ZGFSXXSSJ,ZGFXXXSSJ,WGFSXXSSJ, WGFXXXSSJ, XYGFSXXSSJ, XYGFXXXSSJ , DGSXXSSJ, DGXXXSSJ
from JJWGPS_T_XLBZXXB );
elsif updating then
update JJWGPS_T_XLBZXXB set xlbm=:new.xlbm where xlbm=:old.xlbm;
end if;
end;
/线路标准表的约束条件:
ALTER TABLE JJWGPS_T_XLBZXXB ADD (
CONSTRAINT JJWGPS_T_XLBZXXB_UN
UNIQUE (XLBM, XLLX)ALTER TABLE JJWGPS_T_XLBZXXB ADD (
CONSTRAINT JJWGPS_T_XLBZXXB_FK
FOREIGN KEY (XLBM)
REFERENCES JJWGPS_T_XLZHXXB_ALL (XLBM)
ON DELETE CASCADE);在JJWGPS_T_XLZHXXB_all中增加一条记录时候报错,
ORA-00001: 违反唯一约束条件(JJWGPS.JJWGPS_T_XLBZXXB_UN)
ORA-06512: 在JJWGPS.XLZHXXB_TRI", line 3
ORA-04088: 触发器JJWGPS.XLZHXXB_TRI'执行过程中出错
我在XLZHXXB里面新增的XLBM是唯一的,与表里的数据不重复,为什么还会报错呢??
CREATE OR REPLACE TRIGGER JJWGPS.xlzhxxb_tri after insert or update ON JJWGPS.JJWGPS_T_XLZHXXB_all
for each row
begin
if inserting then
INSERT INTO JJWGPS_T_XLBZXXB (select :new.XLBM,ZGXS,YTXS,DWXS,BXXS,JQXS,BZZLC,SXZLC,XXZLC,ZGFKSSJ,ZGFJSSJ,
WGFKSSJ,WGFJSSJ,ZGFDJG,WGFDJG,PSDJG,ZZ,YZ,CS,CX,FZCKGM,YJ,JJ,KSLCA,KSLCB,FKLC,SXPDLC,XXPDLC,SZPDLC,
XYGFKSSJ,XYGFJSSJ,BZ,SXXSSJ,XXXSSJ,XLLX ,ZGFSXXSSJ,ZGFXXXSSJ,WGFSXXSSJ, WGFXXXSSJ, XYGFSXXSSJ, XYGFXXXSSJ , DGSXXSSJ, DGXXXSSJ
from JJWGPS_T_XLBZXXB );
elsif updating then
update JJWGPS_T_XLBZXXB set xlbm=:new.xlbm where xlbm=:old.xlbm;
end if;
end;
/线路标准表的约束条件:
ALTER TABLE JJWGPS_T_XLBZXXB ADD (
CONSTRAINT JJWGPS_T_XLBZXXB_UN
UNIQUE (XLBM, XLLX)ALTER TABLE JJWGPS_T_XLBZXXB ADD (
CONSTRAINT JJWGPS_T_XLBZXXB_FK
FOREIGN KEY (XLBM)
REFERENCES JJWGPS_T_XLZHXXB_ALL (XLBM)
ON DELETE CASCADE);在JJWGPS_T_XLZHXXB_all中增加一条记录时候报错,
ORA-00001: 违反唯一约束条件(JJWGPS.JJWGPS_T_XLBZXXB_UN)
ORA-06512: 在JJWGPS.XLZHXXB_TRI", line 3
ORA-04088: 触发器JJWGPS.XLZHXXB_TRI'执行过程中出错
我在XLZHXXB里面新增的XLBM是唯一的,与表里的数据不重复,为什么还会报错呢??
解决方案 »
- 紧急求助!怎么把dmp文件成功导入??
- 为什么在虚拟机上装客户端边不上服务器....
- Oracle11g登陆SQLPlus时遇到ORA-01034,ORA-27101错误
- ORA-00932: 数据类型不一致: 应为 -, 但却获得 CLOB
- oracle数据备份问题
- 定义一个作业,在每月1号00:00:00时运行,怎样来定义时间?
- 连接两个字符串有哪些方法?他们各有什么不同于相同之处?效率如何?
- 小弟想学oracle各位大哥大姐给推荐本书
- 讨论,哪个方法比较好:是用一个自动产生的SEQUENCE ID作为 表的PRIMARY KEY 还是由几个业务字段联合起来做为PRIMARY KEY?
- ORACLE 9i for AIX问题:我的listener不能启动
- oracle 启动监听 出错(求助)
- oraclexe 为什么访问数据库主页总是失败?
我在XLBZXXB里面的唯一约束是线路编码加上线路类型啊
应该写ADD (
CONSTRAINT JJWGPS_T_XLBZXXB_UN
UNIQUE (XLBM||XLLX)
--你为此两个属性列XLBM, XLLX添加是唯一约束,也就是说,在你添加的数据中,
--此两列的数据是不能重复的,他们必须是唯一值
ALTER TABLE JJWGPS_T_XLBZXXB
ADD CONSTRAINT JJWGPS_T_XLBZXXB_UN
UNIQUE (XLBM, XLLX)
你使用insert into select 一次使用同一个:new.xlbm插入多行,既然xlbm重复了,xllx再重复
则违反组合约束JJWGPS_T_XLBZXXB_UN