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命令的作用是什麼?
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命令的作用是什麼?
要更改默認的字符集和校對錶,包括那些現有列的(注意轉換爲條款):
alter table <some_table> convert to character set utf8 collate utf8_unicode_ci;
它爲該表設置默認排序規則;如果你創建一個新的列,那應該與latin_general_ci整理 - 我想。嘗試指定個別列的排序規則,看看是否有效。關於它如何處理這個問題,MySQL有一些非常奇怪的行爲。
向下滾動以解決問題 – Moak 2012-12-17 03:53:27
MySQL有4個級別的排序規則:服務器,數據庫,表,列。 如果更改服務器,數據庫或表的排序規則,則不會更改每列的設置,但會更改默認排序規則。
例如,如果更改數據庫的默認排序規則,則在該數據庫中創建的每個新表都將使用該排序規則,並且如果更改了表的默認排序規則,則在該表中創建的每個列都將得到該排序規則。
事實上,MySQL有** FIVE **排序等級,有一個字符集級別的默認排序規則設置,很多人都忘記了。 – Devy 2015-09-24 18:07:36
可能需要更改架構不僅表
ALTER SCHEMA <table name>
DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
(MariaDB的10)
的可能重複[更改數據庫歸類(http://stackoverflow.com/questions/5906585/change-database-collation) – 2014-02-14 10:40:35
你不妨改變正確答案爲自己和許多人似乎同意第二個是正確的。 – 2014-06-28 15:42:48
@GregMiernicki完成。 – dharm0us 2014-06-30 06:30:57