powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / Создание индекса на синоним таблицы.
8 сообщений из 8, страница 1 из 1
Создание индекса на синоним таблицы.
    #33350032
LOTOS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. В общем вопрос в следующем. Давича упал сервер. Админы его подняли. В общем с тех пор не могу создать индекс на синоним к таблице в другой базе. Т.е. есть таблица charge в базе calk, в базе rus запускается процедура, которая и должна создать индекс.

СИноним создан так:

CREATE SYNONYM charge FOR calc:charge

Из процедуры создаем индекс:

CREATE INDEX kvit_ix3 ON charge (date_period ASC, nach_id ASC);

На что ругается вот так:

-- [Informix][Dynamic Server][rus] SQL Error (-556) : Cannot create, drop, or modify an object on an another database server.

В чем может быть причина? Раньше эта процедура работала без проблем.
Заранее благодарен.
...
Рейтинг: 0 / 0
Создание индекса на синоним таблицы.
    #33350971
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
finderr 556 :

Cannot create, drop, or modify an object that is external to current database.

This statement attempts to create, drop, or alter an object in an external database, one other than the current database. You can only read the contents of an external database.

If you make the external database your current database, you can modify the contents.

Ваша процедура не должна была работать. Либо это был баг (что врядли), либо у вас где-то был переход в удаленную базу, который теперь исчез.
В таком вот аксепте
...
Рейтинг: 0 / 0
Создание индекса на синоним таблицы.
    #33359267
LOTOS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за перевод.... читал.... знаю.

Во первых я пытаюсь создать индекс не на таблицу в удаленной базе, а на ее синоним. Вроде это возможно. Если не прав, поправьте.
И можно поподробнее че это за такой переход в удаленную базу мог быть? Возможно ЭТО то самое, что после восстановления сервера не поднялось.
...
Рейтинг: 0 / 0
Создание индекса на синоним таблицы.
    #33361202
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LOTOSСпасибо за перевод.... читал.... знаю.

Во первых я пытаюсь создать индекс не на таблицу в удаленной базе, а на ее синоним. Вроде это возможно. Если не прав, поправьте.
И можно поподробнее че это за такой переход в удаленную базу мог быть? Возможно ЭТО то самое, что после восстановления сервера не поднялось.

Нет, создать индекс на синоним к удаленной таблице невозможно (но возможно если синоним указывает на локальную табдицу). В документации это ограничение не описано, но чисто логически - таблица sysindexes имеет поле tabid и не имеет поля databaseid. А переход в удаленную базу выглядит так :
database calc;

Возможно, ваша процедура до падения сервера запускалась из calc, а не из rus.
...
Рейтинг: 0 / 0
Создание индекса на синоним таблицы.
    #33362017
LOTOS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет, создать индекс на синоним к удаленной таблице невозможно (но возможно если синоним указывает на локальную табдицу). В документации это ограничение не описано, но чисто логически - таблица sysindexes имеет поле tabid и не имеет поля databaseid. А переход в удаленную базу выглядит так :
database calc;

Возможно, ваша процедура до падения сервера запускалась из calc, а не из rus.

Все логично. Только процедура работала в РУСе. До падения сервера выгрузка данных шла 1,5 - 2 часа. А сейчас идет 5 часов. Какие будут предположения по данному вопросу? Возможно пользователю прав каких то не хватает.
...
Рейтинг: 0 / 0
Создание индекса на синоним таблицы.
    #33362113
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вас интересует почему оно работало или как ускорить выгрузку ? на первый вопрос ответ "понятия не имею", на второй - для построения индекса перейдите в базу calc (в процедуре), постройте индекс, вернитесь обратно. Это, конечно, если выгрузка затормозилась из-за отсутствия индекса.

В таком вот аксепте
...
Рейтинг: 0 / 0
Создание индекса на синоним таблицы.
    #33376816
Andre++
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Выбегалло LOTOSСпасибо за перевод.... читал.... знаю.

Во первых я пытаюсь создать индекс не на таблицу в удаленной базе, а на ее синоним. Вроде это возможно. Если не прав, поправьте.
И можно поподробнее че это за такой переход в удаленную базу мог быть? Возможно ЭТО то самое, что после восстановления сервера не поднялось.

Нет, создать индекс на синоним к удаленной таблице невозможно (но возможно если синоним указывает на локальную табдицу). В документации это ограничение не описано, но чисто логически - таблица sysindexes имеет поле tabid и не имеет поля databaseid. А переход в удаленную базу выглядит так :
database calc;

Возможно, ваша процедура до падения сервера запускалась из calc, а не из rus.

Создать синоним на удаленную таблицу МОЖНО!!! Не обманывайте добрых людей. Более того через синоним работают все операции вставки, удаления и модификации, также можно отбирать данные. (SQL)
Но у меня также не получалось проводить модификацию объекта (alter table, create index), т.е. DDL с помощью синонима. Необходимо конектится к БД где лежит реальный объект и произвести над ним преобразование его структуры.
...
Рейтинг: 0 / 0
Создание индекса на синоним таблицы.
    #33376849
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andre++
Создать синоним на удаленную таблицу МОЖНО!!! Не обманывайте добрых людей.
....
Это вы читаете по диагонали: "создать ИНДЕКС на синоним к удаленной таблице", про синоним базара не было.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / Создание индекса на синоним таблицы.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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