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

Вниз

SharSet и Collate - на что влияют   Найти похожие ветки 

 
Ura   (2002-05-02 14:20) [0]

Вопрос вдогонку по создании индекса при Collate. Индекс не создаеться из двух столбцов. Если Collate ибрать все ок.
Исли Я уберу коллате то что я потеряю - по идее НИЧЕГО. Так в чем же смысл Collate и SharSet?


 
Ura   (2002-05-06 14:23) [1]

Кто-нибудь знает или нет?


 
Johnmen   (2002-05-06 14:35) [2]

Смысл в применимости UPPER()...
Возможно есть и другие, но мною они не обнаружены...


 
Alexandr   (2002-05-06 14:35) [3]

см. статью про русские буквы на
www.ibase.ru

там очень популярно на этот счет написано


 
Desdechado   (2002-05-06 14:35) [4]

смысл Collate - некоторый способ упорядочивания при сортировке символов. он немного разный в разных Collate.
смысл Charset - возможность чтения/записи в определенной кодировке


 
Ura   (2002-05-06 14:45) [5]

Какое дело базе в какой кодировке Я храню данные? Или она может перекодировать кодировки т.е. данные лежат в WIN1251 а в Linux стоит кодировка Koи8. Я могу заставить перекодировать??? (написав какой-нибудь фильтр и подсоединив его к СУБД). Или нет.
Про коллате все ясно - это просто указатель на таблицу весов символов при сортировке .... ???


 
Reindeer Moss Eater   (2002-05-06 14:48) [6]

Есть ограничение на длину индексного выражения для строки.
Если поле создано с collate то каждый символ занимает три байта, а не один.


 
Desdechado   (2002-05-06 14:55) [7]

2 Reindeer Moss Eater (06.05.02 14:48)
> Если поле создано с collate то каждый символ занимает три байта, а не один.
число байт на символ зависит от Collate


 
Reindeer Moss Eater   (2002-05-06 14:58) [8]

Я и говорю, что зависит


 
Ura   (2002-05-06 15:24) [9]

Совсем запутался. А зачем вообще эти настройки. Может сделать лучше юникод. Если это все равно помощи не окажет ...


 
Reindeer Moss Eater   (2002-05-06 15:26) [10]

Тебе же сказали по-русски, что если поле создано с Collate,
то индекс по нему может быть создан если длина поля <= 84 символа


 
kaif   (2002-05-07 02:19) [11]

Я когда-то по наивности работал без CHARSET . Так вот, при упорядочивании имел вместо правильного:
Вася
вася
Геша
гоша
Неправильное:
Вася
Геша
вася
гоша.
То есть так, как расположены ASCII символы. Сначала все большие буквы "А".."Я", затем все маленькие, начиная с "а". Буква "Ё" вообще могла оказаться где попало.
Но самое важное, действительно, UPPER. Мало установить CHARSET. Без COLLATE upper не заработает. Просто не найдет ни хрена для русских выражений.
Ограничение на длину индекса себя оправдывает. Не так уж нужны индексированные строки более 84 символов.


 
Desdechado   (2002-05-07 10:40) [12]

Если очень надо индекс по длинным полям, ставь Win1251 и делай UDF вместо UPPER, тогда не нужен COLLATE, но некоторые фокусы (не очень заметные) все-таки останутся.
Если тебе индекс нужен типа UNIQUE, т.е. для проверки, а не для упорядочивания при выборке, то такое решение вполне пройдет.


 
Ura   (2002-05-07 11:57) [13]

Спасибо всем. Понял.
Сделал только CHARSET Win1251 без COLLATE. И индекс 50+50.
Для чего нужен уникальный индекс - заводской номер техники и код техники в реестре. А реестров несколько.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2002.05.30;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.005 c
3-97181
kserg@ukr.net
2002-05-08 10:50
2002.05.30
Тип данных decimal - как можно


4-97458
poiZon
2002-03-27 15:24
2002.05.30
Hook


7-97437
Алекс
2002-03-06 11:15
2002.05.30
Помогите найти apollo для Delphi


7-97439
DmitryZ
2002-03-04 10:02
2002.05.30
Работа с портами под W2K, DLPrinterPortIO и не только...


3-97172
Sobolyn
2002-05-07 14:52
2002.05.30
Как очистить файл *.mb для какой-нибудь таблицы *.db





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский