powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Sybase ASE 15 - primarykey
2 сообщений из 2, страница 1 из 1
Sybase ASE 15 - primarykey
    #36594550
Mikle83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

Столкнулся со странностью на АСЕ15. Есть таблица, которая создается скриптом, и в которой создается Primary Key. Соответственно наименование индекса для ключа в каждой отдельно взятой БД будет каким-то своим (например Programm_C_3200011401).

Есть процедура, в которой пользуется эта таблица в join и явно указывается что надо пользоваться Primary_Key для джойна.
Код: plaintext
...TableName as TN (index PrimaryKey) 

В 12-ой версии это прокатывало на уро - был index scan таблицы.
15-ка же пишет, что типа индекс не найден (соотв. table scan). Если же указать прям имя индекса
Код: plaintext
...TableName as TN (index Programm_C_3200011401) 
то все в норме - индекс скан на таблицу...

С чего это 15-ка перестала понимать директиву PrimaryKey? Может сменился синтаксис?
Как сказать - пользуй первичный ключ для таблицы не указывая его наименование?
...
Рейтинг: 0 / 0
Sybase ASE 15 - primarykey
    #36594612
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikle83 пишет:
> С чего это 15-ка перестала понимать директиву PrimaryKey? Может сменился
> синтаксис?

Так он и был такой всегда.
PrimaryKey в данном случае -- название индекса.

Синтаксис такой:

(index index-name | index-number )

В create table можно (и нужно) явно задавать название констрейнта PK.
Тогда его имя не будет генерироваться сервером, и будет предопределённым.
И его можно использовать в хинтах.

> Как сказать - пользуй первичный ключ для таблицы не указывая его
> наименование?

Это возможно только для кластерных ключей таблиц на APL. Там можно написать 1.
0 -- сама таблица (table scan)
1 -- кластерный индекс (если есть).

В общем случае такой возможности нет, нужно указывать имя индекса.

Не знаю, конечно, может быть в 15 -ом что-то лучше придумали.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Sybase ASE 15 - primarykey
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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