Модераторы: kdv, CyberMax
-
Solo
- Сообщения: 108
- Зарегистрирован: 18 апр 2005, 04:05
Сообщение
Solo » 21 фев 2007, 12:27
Использую IBExpert
В таблице Insured есть индекс FK_Insured1 по 2-м полям
NCont
NUnitCode
Не уникальный. Надо, чтобы был уникальный. Пытаюсь изменить - говорит:
Код: Выделить всё
This operation is not defined for system tables.
unsuccessful metadata update.
ERASE RDB$INDICES failed.
action cancelled by trigger (1) to preserve data integrity.
Cannot delete index used by an Integrity Constraint.
Пробую временно деактивировать индексы - та же штука.
На той таблице, на которую ссылается - тоже не могу индекс удалить
Или я уже торможу?
-
Dimitry Sibiryakov
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
Сообщение
Dimitry Sibiryakov » 21 фев 2007, 12:58
Дропни констрейн. А вообще - зачем тебе уникальный индекс? С дбф недавно слез? Читай про отличия индексов и контрейнов.
-
kdv
- Forum Admin
- Сообщения: 6595
- Зарегистрирован: 25 окт 2004, 18:07
Сообщение
kdv » 21 фев 2007, 13:13
"изменить индекс" - это сильно. Вот до чего доводит IBExpert....
-
Solo
- Сообщения: 108
- Зарегистрирован: 18 апр 2005, 04:05
Сообщение
Solo » 21 фев 2007, 13:26
kdv писал(а):"изменить индекс" - это сильно. Вот до чего доводит IBExpert....
Ну давайте выбросим стиральные машины, электродрели, и будем в notepad электронные письма писать, в том числе заголовки
Ну до изменения дело не доходит. Сначала ИБЭксперт пытается его как раз дропнуть, и на этом останавливается. Может, он хочет, чтобы данных не было?
-
CyberMax
- Заслуженный разработчик
- Сообщения: 638
- Зарегистрирован: 31 янв 2006, 09:05
Сообщение
CyberMax » 21 фев 2007, 13:56
Solo писал(а):Ну давайте выбросим стиральные машины, электродрели, и будем в notepad электронные письма писать, в том числе заголовки
Речь идет о том, что пользователь перестает понимать, что происходит внутри. Все его знание сводится к "засовываю грязное белье, ставлю режим и вытаскиваю чистое". А как оно стало чистое - фик его знает...
Solo писал(а):Ну до изменения дело не доходит. Сначала ИБЭксперт пытается его как раз дропнуть, и на этом останавливается. Может, он хочет, чтобы данных не было?
Фактически там нет изменения. Есть только удаление и создание индекса с новыми параметрами.
Мне вот интересно, как ты этот индекс пытаешься сделать уникальным?
-
Solo
- Сообщения: 108
- Зарегистрирован: 18 апр 2005, 04:05
Сообщение
Solo » 21 фев 2007, 14:54
Мне вот интересно, как ты этот индекс пытаешься сделать уникальным?
Да все, разобрался уже, спасибо. А насчет работы без IBExperta - он перед каждой компиляцией демонстрирует скрипт... Так что там все видно...
-
WildSery
- Заслуженный разработчик
- Сообщения: 1738
- Зарегистрирован: 05 июн 2006, 16:19
Сообщение
WildSery » 21 фев 2007, 15:42
Solo писал(а):Так что там все видно...
Это
тебе видно.
А мы должны догадаться, что же ты подразумевал под "изменить индекс".
-
Solo
- Сообщения: 108
- Зарегистрирован: 18 апр 2005, 04:05
Сообщение
Solo » 21 фев 2007, 17:17
WildSery писал(а):Solo писал(а):Так что там все видно...
Это
тебе видно.
А мы должны догадаться, что же ты подразумевал под "изменить индекс".
Удалить и сделать новый
-
kdv
- Forum Admin
- Сообщения: 6595
- Зарегистрирован: 25 окт 2004, 18:07
Сообщение
kdv » 21 фев 2007, 17:48
Удалить и сделать новый
если индекс был создан сам по себе, то его и удалить можно без проблем. Если индекс был автоматически создан при создании constraint PK, FK, Unique, то и удалится такой индекс ТОЛЬКО при удалении соответствующего constraint.