2011-02-08 163 views
3

我想使用此SQL重命名我的表。我在Windows XP上使用MySQL 5.1.41。無法重命名mysql表

USE 'bobby_tables'; 

    ALTER TABLE gc_acompte_fournisseur 
     RENAME TO GC_Acompte_Fournisseur; 

並且該查詢聲稱已正確執行,但它在於!我的表名仍然全是小寫!

我碰到了什麼骯髒的古怪,禁止我利用我的桌子?

+3

「哦,是的,小鮑比表,我們稱他。」 http://xkcd.com/327/ – JasonWoof 2012-04-15 20:28:18

回答

4

它是多麼的MySQL在Windows上運行:

http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_lower_case_table_names

  • 的lower_case_table_names

如果設置爲0,表名被存儲爲 指定和比較的情況下 敏感。如果設置爲1,表名稱 在磁盤上以小寫形式存儲,並且 比較不區分大小寫。如果 設置爲2,則表名將被存儲爲 ,但以小寫字母進行比較。此 選項也適用於數據庫名稱 和表別名。有關其他 的信息,請參閱Section 8.2.2, 「Identifier Case Sensitivity」

如果你有不區分大小寫的文件名 (如Windows或Mac OS X)系統 上運行MySQL你不應該把這個變量設爲0。如果 您在此類 系統上將此變量設置爲0,並使用不同的字母索引訪問MyISAM表名 ,則可能導致索引 損壞。 在Windows 上,默認值爲1。在Mac OS X, 默認值是2

如果你正使用InnoDB表,你應該設置所有 平臺上,此變量設置爲1,以強制的名字是 轉換爲小寫

(重點煤礦)

+0

sooooo ....我應該將此值更改爲2? – Matt 2011-02-08 15:30:03