但是好像不是这个原因阿,你看看我的三个表格的数据吧。
第一个关系表:
SQL> select * from relation_dr;
FIRNODE SECNODE RATIODR
---------- ---------- ----------
HETIAN P01 .6
HETIAN P02 .3
HETIAN P03 .1
AKESHU P04 .5
AKESHU P05 .3
AKESHU P06 .05
AKESHU P07 .15
NONGYISHI P08 .25
NONGYISHI P09 .35
NONGYISHI P10 .15
NONGYISHI P11 .25
FIRNODE SECNODE RATIODR
---------- ---------- ----------
KUELE P12 1
然后我插入以下语句时出错,好像只有HETIAN和AKESHU可以插入2条或以上数据,其他都不可以了,似乎这两个值已经注册了一样,不知道什么原因。
SQL> INSERT INTO RESULTR VALUES(2002,'HETIAN',500);
已创建 1 行。
SQL> INSERT INTO RESULTR VALUES(2002,'AKESHU',550);
已创建 1 行。
SQL> INSERT INTO RESULTR VALUES(2002,'NONGYISHI',400);
INSERT INTO RESULTR VALUES(2002,'NONGYISHI',400)
*
ERROR 位于第 1 行:
ORA-01403: 未找到数据
ORA-06512: 在"LRH.UPDATERESULTD", line 9
ORA-04088: 触发器 'LRH.UPDATERESULTD' 执行过程中出错
SQL> INSERT INTO RESULTR VALUES(2002,'KUELE',400);
已创建 1 行。
但是如果把RELATION_DR中NONGYISHI的条数改成1条,即删除3条数据。
如下语句:
SQL> delete from relation_dr where secnode IN ('P09','P10','P11');
已删除3行。
SQL> INSERT INTO RESULTR VALUES(2002,'NONGYISHI',400);
已创建 1 行。
即插入了数值。好像要加入其他的FIRNODE也是一样的,在RELATION_D不能超过一条数据,否则出错。不知道具体什么原因,大虾们救命啊。