我想使用这段SQL重命名我的表。 我正在使用Windows XP上的MySQL 5.1.41。
USE 'bobby_tables';
ALTER TABLE gc_acompte_fournisseur
RENAME TO GC_Acompte_Fournisseur;
查询声称已正确执行,但是它是谎言!我的表名仍然全部为小写字母!
我遇到了什么邪恶的阻碍,不允许我将表名大写?
我想使用这段SQL重命名我的表。 我正在使用Windows XP上的MySQL 5.1.41。
USE 'bobby_tables';
ALTER TABLE gc_acompte_fournisseur
RENAME TO GC_Acompte_Fournisseur;
查询声称已正确执行,但是它是谎言!我的表名仍然全部为小写字母!
我遇到了什么邪恶的阻碍,不允许我将表名大写?
这就是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,则表名按照给定的方式存储,但是比较时将转换为小写。此选项也适用于数据库名称和表别名。有关更多信息,请参见第8.2.2节,“标识符大小写敏感性”。
如果您在运行具有不区分大小写文件名(如Windows或Mac OS X)的系统上的MySQL,则不应将此变量设置为0。如果您在这样的系统上将此变量设置为0并使用不同的大小写访问MyISAM表名,则可能会导致索引损坏。在Windows上,默认值为1。在Mac OS X上,默认值为2。
如果您正在使用InnoDB表,则应在所有平台上将此变量设置为1,以强制名称转换为小写。
(我强调)
要在mysql中重命名/更改表名,请运行以下查询:
RENAME TABLE tbl_name TO new_tbl_name
例如:
RENAME TABLE student
TO pu_students
参考链接:http://dev.mysql.com/doc/refman/5.0/en/rename-table.html
谢谢!