powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Проблема с созданием индексов
5 сообщений из 5, страница 1 из 1
Проблема с созданием индексов
    #32209699
BodyaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть таблица вида:

CREATE TABLE TEST (
ID INTEGER NOT NULL
,DESCR VARCHAR(100) CHARACTER SET WIN1251 COLLATE PXW_CYRL);

Когда создаю индекс по полю DESCR:

CREATE INDEX Test_Index ON Test (DESCR);

Вываливается ошибка "key size too big for index Test_Index."

Если у поля DESCR убрать COLLATE PXW_CYRL, то индекс строится нормально.
Подскажите как решить проблемму.

(InterBase 6.5, Dialect 3)
...
Рейтинг: 0 / 0
Проблема с созданием индексов
    #32209778
Cancer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уменьшить размер поля. До 70 символов.
...
Рейтинг: 0 / 0
Проблема с созданием индексов
    #32209800
BodyaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но мне нужен именно такой размер поля. :(
...
Рейтинг: 0 / 0
Проблема с созданием индексов
    #32209811
Cancer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда никак :(
Или убирай COLLATE (будет неправильно работать UPPER, сортировка и прочее), или уменьшай длину поля
...
Рейтинг: 0 / 0
Проблема с созданием индексов
    #32210444
Фотография arni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю, что COLLATE'ом можно пожертвовать при создании таблицы, но указывать его в самом селекте. Синтаксис допускает при указании полей сортировки в ORDER BY непосредственно указывать необходимый COLLATE
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Проблема с созданием индексов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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