2011-02-08 101 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