Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];

Вниз

Как удалить все индексы в базе 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.51 MB
Время: 0.034 c
3-1107957778
TCoolBox
2005-02-09 17:02
2005.03.13
Параметры в SQL запросе не пашут


14-1108942233
АНТИспаммер
2005-02-21 02:30
2005.03.13
Реально ли написать свою ОС ?


1-1109256935
jonni
2005-02-24 17:55
2005.03.13
deafult .... что же это значит??


14-1108855672
GanibalLector
2005-02-20 02:27
2005.03.13
поиск правильного решения...


1-1109237475
Zilog
2005-02-24 12:31
2005.03.13
Обьясните, пж, почему поток без sleep(1) тормозит?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский