2009-04-12 5 views
138
create table check2(f1 varchar(20),f2 varchar(20)); 

создает таблицу со значением по умолчанию latin1_general_ci;Как изменить стандартную сортировку таблицы?

alter table check2 collate latin1_general_cs; 
show full columns from check2; 

показывает индивидуальную сортировку столбцов как 'latin1_general_ci'.

Тогда каков эффект команды alter table?

+0

возможно дубликат [Изменить параметры сортировки базы данных] (http://stackoverflow.com/questions/5906585/change-database-collation) –

+0

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

+1

@GregMiernicki сделано. – dharm0us

ответ

485

Чтобы изменить набор символов по умолчанию и параметры сортировки таблицы в том числе существующих столбцов (обратите внимание преобразовать в пункт в):

alter table <some_table> convert to character set utf8 collate utf8_unicode_ci; 
+24

Точно я искал, спасибо. Другие ответы объясняют проблему, но у этого есть решение. – Pablo

+3

Согласен. Это определенно то, что я искал. – James

+0

что посмотреть? Мне нужно изменить для View .. –

9

Он устанавливает сопоставление по умолчанию для таблицы; если вы создадите новый столбец, который должен быть сопоставлен с latin_general_ci - я думаю. Попробуйте указать сортировку для отдельного столбца и посмотреть, работает ли это. У MySQL есть действительно странное поведение в отношении того, как он справляется с этим.

+32

Прокрутите вниз для решения проблемы – Moak

29

MySQL имеет 4 уровня сортировки: сервер, базу данных, таблицу, столбец. Если вы измените настройку сервера, базы данных или таблицы, вы не измените настройки для каждого столбца, но вы измените сортировки по умолчанию.

Например, если вы изменили настройку базы данных по умолчанию, каждая новая таблица, которую вы создаете в этой базе данных, будет использовать эту сортировку, и если вы измените сортировку по умолчанию таблицы, каждый столбец, созданный в этой таблице, получит эту сортировку ,

+4

На самом деле у MySQL есть ** FIVE ** Уровни сортировки, есть набор настроек по умолчанию уровня набора символов, о котором многие забывают. – Devy

+2

Существует также сопоставление сопоставлений соединения show show, например «collation%»; ', поэтому total is *** SIX ***. –

0

может потребоваться изменить схему не только таблица

ALTER SCHEMA <table name> ПАРАМЕТР ПО УМОЛЧАНИЮ SET utf8 КОЛИЧЕСТВО ПО УМОЛЧАНИЮ utf8_general_ci;

(MariaDB 10)

+0

'<имя базы данных>' вместо '

' – dnivog

Смежные вопросы