执行块插入错误“关系/过程/视图的上下文太多”。

时间:2016-11-23 17:54:14

标签: firebird bulkinsert firebird2.5

我正在尝试使用块插入实现批量插入到我的Firebird数据库中。

语法如下:

EXECUTE BLOCK AS
BEGIN
UPDATE OR INSERT INTO MY_TABLE (F_1, F_2) VALUES  ('1', NULL) ;
UPDATE OR INSERT INTO MY_TABLE (F_1, F_2) VALUES  ('2', '01.01.2016') ;
...
...
END

当然,对于更多字段,查询会更复杂,但是,重点是,我遇到以下错误消息:

“关系/程序/视图的上下文太多。允许的最大值为255”

当查询数量大于80时。我真的不知道显示的255和我的查询之间的关系。

任何帮助?

更新
一些相关的DDL信息:

CREATE TABLE MY_TABLE
(
  F_1 INTEGER NOT NULL,
  F_2 TIMESTAMP,
  F_3 INTEGER,
  LAST_UPDATE TIMESTAMP
 CONSTRAINT PK_MY_TABLE PRIMARY KEY (F_1)
);

ALTER TABLE F_1 ADD CONSTRAINT FK_MY_TABLE_F_3_SOME_OTHER
  FOREIGN KEY (F_3) REFERENCES SOME_OTHER
  (SOME_OTHER_PK_ID) 
  ON DELETE NO ACTION
  ON UPDATE NO ACTION
;   

CREATE ASC INDEX I_MY_TABLE_F1 ON MY_TABLE (F1);

CREATE DESC INDEX I_MY_TABLE_LAST_UPDATE ON MY_TABLE (LAST_UPDATE);

SET TERM ^^ ;
CREATE TRIGGER MY_TABLE_BIU FOR MY_TABLE ACTIVE BEFORE INSERT OR UPDATE POSITION 0 AS
begin  
  if (new.F1 is null) then  
  begin  
    new.F1 = gen_id( GEN_MY_TABLE_F1, 1 );  
  end
  new.LAST_UPDATE = current_timestamp;
end ^^
SET TERM ; ^^

请注意,我有几个FK,最多10个,如上所述,还有更多字段。

0 个答案:

没有答案