Выполнить ошибку вставки блока "Слишком много контекста отношений / процедур / представлений".

Я пытаюсь реализовать массовую вставку в мою базу данных 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 ответов

Другие вопросы по тегам