如何使MySQL INSERT语句不区分大小写?

时间:2013-09-23 20:04:32

标签: mysql insert h2 case-sensitive case-insensitive

我正在将数据库从H2转换为MySQL,并且H2导出其表的方式都是IN_UPPERCASE_CHARACTERS。 collat​​ion是否仅适用于数据并且我手动替换表名?

1 个答案:

答案 0 :(得分:1)

MySQL排序规则仅适用于数据库中列的内容。它们不是你问题的一个因素。

列名,索引名等都是不区分大小写的。

在Windows和Mac HFS上,表名(如文件名)不区分大小写。在Linux / BSD / Unix上,它们与文件名一样,区分大小写。

你可以做很多事情来解决所有这些问题。见这里。

http://dev.mysql.com/doc/refman/5.6/en/identifier-case-sensitivity.html

如果您的MySQL数据库在Windows(或Mac HFS)平台上运行,您可能应该什么都不做。如果它位于* nix框中,您可以考虑重命名表,使它们具有与查询代码相同的大小写。

 RENAME `TABLENAME` TO `tablename`

或者,您可以考虑设置lower_case_table_names=1,重命名所有表格,使其具有小写名称,然后从那里开始。这可能会为您提供最具弹性的编码环境来使用您的数据库:它会使您的表名在代码中不区分大小写。当然,如果您有两个名为tablecaseTABLECASE的不同表,则无效。