那么問題又來了,為什么我前面手工測試latin1_bin時不生效呢? 原來MySQL按照下面的方式選擇表字符集和 校對規(guī)則: 如果指定了CHARACTER SET X和COLLATE Y,那么采用CHARACTER SET X和COLLATE Y。 如果指定了CHARACTER SET X而沒有指定COLLATE Y,那么采用CHARACTER SET X和CHARACTER SET X的默認(rèn)校對規(guī)則。 否則,采用服務(wù)器字符集和服務(wù)器校對規(guī)則。 而我們在建表的時候指定了character set,所以它永遠(yuǎn)是采用對應(yīng)的默認(rèn)的校對規(guī)則。
當(dāng)然我們其實也沒必要重建表格,只需要alter table db_allot CONVERT TO CHARACTER SET latin1 COLLATE latin1_bin這樣轉(zhuǎn)換即可。