我正在将数据库从 H2 转换为 MySQL,H2 导出其表的方式都被命名为 IN_UPPERCASE_CHARACTERS。排序规则是否只适用于数据,我是否被困在手动替换表名?
问问题
1785 次
1 回答
1
MySQL 排序规则仅适用于数据库中列的内容。它们不是您的问题的一个因素。
列名、索引名等都是不区分大小写的。
在 Windows 和 Mac HFS 上,表名(如文件名)不区分大小写。在 Linux / BSD / Unix 上,它们像文件名一样区分大小写。
您可以做很多事情来解决所有这些问题。看这里。
http://dev.mysql.com/doc/refman/5.6/en/identifier-case-sensitive.html
如果您的 MySQL 数据库在 Windows(或 Mac HFS)平台上运行,您可能什么也不做。如果它在 *nix 框上,您可能会考虑重命名表,以便它们与您的查询代码具有相同的大小写。
RENAME `TABLENAME` TO `tablename`
或者,您可以考虑设置lower_case_table_names=1
、重命名所有表,使它们具有小写名称,然后从那里开始。这可能为您提供了使用数据库的最具弹性的编码环境:它将使您的代码中的表名不区分大小写。当然,如果您有两个不同的表命名tablecase
,TABLECASE
这将不起作用。
于 2013-09-23T21:29:02.643 回答