powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Ошибка при удалении FK в скрипте...
11 сообщений из 11, страница 1 из 1
Ошибка при удалении FK в скрипте...
    #32237395
Posco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется скрипт:

Код: plaintext
1.
2.
ALTER TABLE POLICIES DROP CONSTRAINT FK_POLICIES_AGENTID;
ALTER TABLE POLICIES DROP CONSTRAINT FK_POLICIES_POLICYID;
ALTER TABLE POLICIES DROP CONSTRAINT FK_POLICIES_REGIONID;


После удаления первого ключа, вторая и третья строчки не выполняются.
Ошибка:
This operation is not defined for system tables. unsuccessful metadata update. object INDEX is in use.

Удаление возможно только после повторного подключения к базе.

IBServer: Yaffil 1.2.0.872b

Заранее спасибо!
...
Рейтинг: 0 / 0
Ошибка при удалении FK в скрипте...
    #32237427
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скорее всего в ХП используется план по первому индексу ...
...
Рейтинг: 0 / 0
Ошибка при удалении FK в скрипте...
    #32237430
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dnico
ХП????
можду прочим эти команды нельзя вызвать с процедуры
...
Рейтинг: 0 / 0
Ошибка при удалении FK в скрипте...
    #32237439
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я имел ввиду, что в какой-нить ХП явно указан PLAN
...
Рейтинг: 0 / 0
Ошибка при удалении FK в скрипте...
    #32237443
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тогда как вообще возможно удаление остальных констрейнов?
...
Рейтинг: 0 / 0
Ошибка при удалении FK в скрипте...
    #32237454
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иногда бывает так что в IBExpert появляется object INDEX is in use, тогда когда в SQL - редакторе выполнялся до этого SELECT, или еще что-нибудь ...
...
Рейтинг: 0 / 0
Ошибка при удалении FK в скрипте...
    #32237480
Posco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иногда бывает так что в IBExpert появляется object INDEX is in use, тогда когда в SQL - редакторе выполнялся до этого SELECT, или еще что-нибудь ...

...тоже об этом подумал, т.к. скрипт содержит не только удаление этих индексов, ...но и при отдельном выполнении данной части скрипта возникает трабл
...
Рейтинг: 0 / 0
Ошибка при удалении FK в скрипте...
    #32237485
Привет!

Мое личное мнение, это типичный баг интербейса. если кто не верит, попробуйте:
- стопнуть сервер, стартануть, стопнуть базу (все это, что бы убедиться, что индексы никто не использует);
- разом удалить все внешние ключи на более менее большой базе (ну хотя бы пара сотен ключей).

удалив несколько десятков ключей, интербейс скажет, что индекс используется. делаем дисконект, конект - индекс удаляется, но интербейс скажет, что уже другой индекс используется.

Выход из ситуации - перед каждым ALTER поставить CONNECT.
...
Рейтинг: 0 / 0
Ошибка при удалении FK в скрипте...
    #32237491
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообщем надо копать туда ..., что выполнялость до того ?
...
Рейтинг: 0 / 0
Ошибка при удалении FK в скрипте...
    #32237529
Posco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2фанат интербейса
Выход из ситуации - перед каждым ALTER поставить CONNECT
да, это выход, но не из лучших ...Но пока единственный ;)

2Dnico
Вообщем надо копать туда ..., что выполнялость до того ?
нет, отпадает.
Только что пробовал проделать следующее: на совершенно чистой машине установил FireBird (специально использовал другой сервер, чтобы проверить не глюк ли это Ya). Закинул базу, выполнил вышеуказанный скрипт - такой же трабл.

Если есть у кого соображение, поделитесь пожайлуста.
...
Рейтинг: 0 / 0
Ошибка при удалении FK в скрипте...
    #32238157
Posco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема решена!
Если кому интересно, то вот таким вот способом:
Насколько понял, при создании FK, автоматически создается системный триггер. Если удалить этот триггер, то внешний ключ, в последующем, удаляется без проблем.

Всем спасибо за участие!
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Ошибка при удалении FK в скрипте...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]