Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как проверить наличие индекса перед его созданием / 12 сообщений из 12, страница 1 из 1
01.11.2018, 14:17
    #39726577
Term
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить наличие индекса перед его созданием
Нужно чтоб скрипт создавал индекс,
есть исполнитель скриптов

как проверить?
думал сделать временную хранимку
или execute block использовать,
но в них нельзя вызвать Create Index...
...
Рейтинг: 0 / 0
01.11.2018, 14:21
    #39726583
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить наличие индекса перед его созданием
Termкак проверить?

Запросом к системным таблицам.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
01.11.2018, 14:49
    #39726620
Term
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить наличие индекса перед его созданием
Dimitry Sibiryakov
Запросом к системным таблицам.
[/quot]

это я как раз знаю

Код: sql
1.
2.
3.
4.
 SELECT count(*)
 FROM RDB$INDICES
 WHERE RDB$RELATION_NAME='TABLE_NAME'
 and RDB$INDEX_NAME = 'INDEX_NAME'



дальше то как?
CREATE INDEX это DDL запрос и выполнить его при использовании каких либо условий никак

пример
я думал сделать вот так

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
execute block
as
declare variable cnt integer;
begin
cnt=0;
 SELECT count(*)
 FROM RDB$INDICES
 WHERE RDB$RELATION_NAME='ITEMS'
 and RDB$INDEX_NAME = 'IND_ITEMS_MED_ID'
 into :cnt;
 if (:cnt<>0) then exit;
  CREATE INDEX IND_ITEMS_MED_ID ON ITEMS (MED_ID);
end;


Но ругается на CREATE
...
Рейтинг: 0 / 0
01.11.2018, 15:04
    #39726625
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить наличие индекса перед его созданием
Termдальше то как?

Это уже вопрос к твоему "исполнителю скриптов".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
01.11.2018, 15:05
    #39726627
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить наличие индекса перед его созданием
возьми IBEScript, он это умеет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
01.11.2018, 15:08
    #39726629
Котовасия
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить наличие индекса перед его созданием
Termкак проверить?
Поймать и обработать исключение, возникающее при попытке повторно создать... :)
...
Рейтинг: 0 / 0
01.11.2018, 15:09
    #39726632
Котовасия
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить наличие индекса перед его созданием
TermНо ругается на CREATE
В EB используй икзикьют стейтмент...
...
Рейтинг: 0 / 0
01.11.2018, 15:10
    #39726634
Term
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить наличие индекса перед его созданием
ну т.е. в языке таких возможностей не предусмотрено,
нужен только инструмент как я понимаю?

печалька...
...
Рейтинг: 0 / 0
01.11.2018, 15:12
    #39726635
Котовасия
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить наличие индекса перед его созданием
Termну т.е. в языке таких возможностей не предусмотрено,
нужен только инструмент как я понимаю?

печалька...
В каких еще "языках"?
...
Рейтинг: 0 / 0
01.11.2018, 15:12
    #39726636
Term
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить наличие индекса перед его созданием
КотовасияTermНо ругается на CREATE
В EB используй икзикьют стейтмент...
спасибо! попробую!
...
Рейтинг: 0 / 0
01.11.2018, 15:14
    #39726637
Котовасия
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить наличие индекса перед его созданием
TermКотовасияпропущено...

В EB используй икзикьют стейтмент...
спасибо! попробую!
Не пинайте меня, коллеги...
...
Рейтинг: 0 / 0
01.11.2018, 15:21
    #39726646
Term
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить наличие индекса перед его созданием
Котовасия,

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


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