1) после бэкап-рестора тоже самое
2) gfix не проходит (см. отд ветку в этой группе)
3) табличка создается предварительно так:

CREATE TABLE gd_ref_constraints (
  id               dintkey,
  constraint_name  d_fk_metaname UNIQUE,
  const_name_uq    d_fk_metaname,
  match_option     char(7)  character set none,
  update_rule      char(11) character set none,
  delete_rule      char(11) character set none,

  constraint_rel   d_fk_metaname,
  constraint_field d_fk_metaname,
  ref_rel          d_fk_metaname,
  ref_field        d_fk_metaname,

  ref_state        char(8) character set none,
  ref_next_state   char(8) character set none,

  constraint_rec_count COMPUTED BY (
    (SELECT iif(i.rdb$statistics = 0, 0, Trunc(1/i.rdb$statistics +
0.5)) FROM rdb$indices i
      JOIN rdb$relation_constraints rc ON rc.rdb$index_name = i.rdb
$index_name
      WHERE rc.rdb$relation_name = constraint_rel AND rc.rdb
$constraint_type = 'PRIMARY KEY')),

  constraint_uq_count COMPUTED BY (
    (SELECT iif(i.rdb$statistics = 0, 0, Trunc(1/i.rdb$statistics +
0.5)) FROM rdb$indices i
      JOIN rdb$index_segments iseg ON iseg.rdb$index_name = i.rdb
$index_name
        AND iseg.rdb$field_name = constraint_field
      JOIN rdb$relation_constraints rc ON rc.rdb$index_name = i.rdb
$index_name
      WHERE i.rdb$relation_name = constraint_rel AND i.rdb
$segment_count = 1 AND rc.rdb$constraint_type = 'FOREIGN KEY')),

  ref_rec_count COMPUTED BY (
    (SELECT iif(i.rdb$statistics = 0, 0, Trunc(1/i.rdb$statistics +
0.5)) FROM rdb$indices i
      JOIN rdb$relation_constraints rc ON rc.rdb$index_name = i.rdb
$index_name
      WHERE rc.rdb$relation_name = ref_rel AND rc.rdb$constraint_type
= 'PRIMARY KEY')),

  CONSTRAINT gd_pk_ref_constraint PRIMARY KEY (id)
)

4) проблема в том, что проявляется это на конкретной базе, которая тем
не менее проходит бэкап-рестор.

Ответить