Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.13;
Скачать: CL | DM;

Вниз

Как удалить все индексы в базе Firebird?   Найти похожие ветки 

 
Карелин Артем ©   (2005-02-11 08:23) [0]

Названия таблиц и индексов заранее неизвестны.


 
P.N.P. ©   (2005-02-11 08:41) [1]

Есть такая системная таблица RDB$INDICES,
так вот, имена индексов можно взять оттуда -
поле RDB$INDEX_NAME


 
Карелин Артем ©   (2005-02-11 08:56) [2]

Точно! Спасибо.


 
Sergey13 ©   (2005-02-11 09:14) [3]

Дык наверное еще и констрейнты надо грохать.


 
Карелин Артем ©   (2005-02-11 09:58) [4]


> Sergey13 ©   (11.02.05 09:14) [3]
> Дык наверное еще и констрейнты надо грохать.

Не, этого в базе нет.


 
Sergey13 ©   (2005-02-11 10:02) [5]

2[4] Карелин Артем ©   (11.02.05 09:58)
> Не, этого в базе нет.
Ни одного PK/FK?


 
Карелин Артем ©   (2005-02-11 10:07) [6]

Sergey13 ©   (11.02.05 10:02) [5]
Нет. В данном случае это может нарушить работу работающих с базой программ. Ссылочная целостность определена на уровне триггеров и логики приложения.


 
Johnmen ©   (2005-02-11 10:14) [7]

Я чего-то не понял...
Ведь так же - получили список индексов, а потом стандартно дропаем их по списку...:)


 
Danilka ©   (2005-02-11 10:16) [8]

[6] Карелин Артем ©   (11.02.05 10:07)
Обсуждалось здесь недавно, что лучше, стандартный вариант, или в триггерах, было высказано много мнений не в пользу триггеров, например то, что триггер работает в рамках транзакции и невидит того, что твориться за ее пределами, а штатные средства работают вне транзакции. Так что, имеешь потенциальную проблему.


 
Карелин Артем ©   (2005-02-11 10:16) [9]

Johnmen ©   (11.02.05 10:14) [7]
Ответ уже получен, идут небольшие разъяснения и уточнения.


 
Johnmen ©   (2005-02-11 10:17) [10]

>Danilka ©   (11.02.05 10:16) [8]
>а штатные средства работают вне транзакции.

Хм... Это какие ?


 
Карелин Артем ©   (2005-02-11 10:23) [11]

Danilka ©   (11.02.05 10:16) [8]
Это верно, но тут такая штука...
Репликация данных идет самописная и в процессе передачи новых FK может помешать процессу.
Толку от PK не вижу. Обхожусь уникальными индексами. Каскадных действий без явной команды мне не надо.


 
Danilka ©   (2005-02-11 10:51) [12]

[10] Johnmen ©   (11.02.05 10:17)
> Хм... Это какие ?

те-же самые PK,FK например.
Открываем транзакцию 1, открываем транзакцию 2, вставляем в 2 запись с новым ключем, закрываем транзакцию 2.
из 1 в триггере эта запись не будет видна.


 
Johnmen ©   (2005-02-11 10:57) [13]

>Danilka ©   (11.02.05 10:51) [12]

Почему не будет видна ?


 
ЮЮ ©   (2005-02-11 11:29) [14]

>Danilka ©   (11.02.05 10:51) [12]

А какое дело триггеру до других записей этой таблицы? Его дело работать именно с текущей, ИМХО.


 
Danilka ©   (2005-02-11 11:46) [15]

[13] Johnmen ©   (11.02.05 10:57)
потому что вторая стартовала раньше первой.

[14] ЮЮ ©   (11.02.05 11:29)
хорошо, другой пример, есть две таблицы, мастер-детайл, в датайле соответственно прописывается ИД мастера, FK в базе нет.
стартовали одну транзакцию, в которой добавляется в детайл запись, а после старта первой, но до ее завершения, стартует вторая, удаляет мастер и завершается.
ссылочночть проверяется в триггере, однако триггер не вернет ошибки, т.к. для него запись в мастере еще существует.
Разве не так?


 
Johnmen ©   (2005-02-11 11:53) [16]

>Danilka ©   (11.02.05 11:46) [15]
>потому что вторая стартовала раньше первой.

Ну если первая снапшот, то да. А если рид_коммитед - ню-ню, как здесь некоторые говорят...:)


 
Danilka ©   (2005-02-11 12:03) [17]

[16] Johnmen ©   (11.02.05 11:53)
Чего ты придираешься, в ветке "Ограничения реализованные в триггерах (чисто теоретически)", в которой обсуждается этот вопрос:
http://delphimaster.net/view/3-1106254535/
первый и последний пост твой. :))


 
Danilka ©   (2005-02-11 12:07) [18]

[16] Johnmen ©   (11.02.05 11:53)
Просто лень было ее искать, но помню, что ты там тоже участвовал.


 
Johnmen ©   (2005-02-11 12:11) [19]

>Danilka ©   (11.02.05 12:03) [17]

Да не придираюсь я ни к чему...
kaif всё сказал, всё правильно, и то же самое объясняли на sql.ru
Может тебя смутил нечётко указанный момент, что делается предположение, что тр-ии ещё не завершены...

А вообще, мы о чём ? Я уже потерял нить...:)


 
Danilka ©   (2005-02-11 12:18) [20]

[19] Johnmen ©   (11.02.05 12:11)
> Может тебя смутил нечётко указанный момент, что делается
> предположение, что тр-ии ещё не завершены...

Угу, просто та ветка довольно старая, расписать также красиво как у kaif-а по памяти не получилось, тем более что боюсь я транзакции пишушие держать долго открытыми, вот и закрыл в своем примере вторую раньше времени. :)

> А вообще, мы о чём ? Я уже потерял нить...:)

Так, оффтопика немного. :))



Страницы: 1 вся ветка

Текущий архив: 2005.03.13;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.043 c
14-1108858295
АНТИспаммер
2005-02-20 03:11
2005.03.13
Как отличить спам от не спама ?


10-1082718551
Alex_x
2004-04-23 15:09
2005.03.13
помогите определится с Excel


9-1103379826
йцуеук
2004-12-18 17:23
2005.03.13
Угол между векторами?


6-1105215904
Colonel
2005-01-08 23:25
2005.03.13
Knocking to ....


1-1109267295
Fenik
2005-02-24 20:48
2005.03.13
Память, занимаемая массивом, содержащим дин. массивы.