Quantcast
Channel: SQL.ru: Firebird, InterBase
Viewing all articles
Browse latest Browse all 1677

Ошибка при ALTER INDEX ACTIVE

$
0
0
Попросили посмотреть базу, мол медленно работает. Прогнал валидацию, всё в порядке. Открыл индексы и вижу, что индексы PK, FK и UNQ отключены с ключем RDB$INDEX_INACTIVE = 3.
Тут говорят можно просто включить индекс, а именно выполнить ALTER INDEX ACTIVE. Выполняю - ошибка: "Cannot create foreign key constraint FK_NAME. Partner index does not exists or is inactive."
Стоит FB 3.0, соответственно вручную включить индексы я не могу в системных таблицах. :) Остается только вручную их пересоздать или бэкап-рестор БД, но не об этом речь. Вопрос в том баг это или так задумано?

В доках к FB 3.0 на стр. 139 написано:
"Подсказка
Даже если индекс находится в активном состоянии оператор ALTER INDEX ACTIVE
всё равно перестраивает индекс. Таким образом, эту команду можно использовать
для перестройки индексов, автоматически созданных для ограничений PRIMARY KEY,
FOREIGN KEY, UNIQUE, для которых выполнение оператора ALTER INDEX INACTIVE
невозможно.".

В случае же с FB 3.0 ALTER INDEX INACTIVE выполняется без ошибок и более того индексы (PK, FK и UNQ) выключаются!

Viewing all articles
Browse latest Browse all 1677

Trending Articles