Error number: MY-013521; Symbol: ER_TABLE_NAME_IN_UPPER_CASE_NOT_ALLOWED; SQLSTATE: HY000
Message: Table name ‘%s.%s’ containing upper case characters is not allowed with lower_case_table_names = 1.
MySQL错误号MY-013521,符号 ER_TABLE_NAME_IN_UPPER_CASE_NOT_ALLOWED,SQLSTATE HY000是一个语法错误,表示不允许使用大写字母来命名表。当发生这个错误时,数据库上一条查询将无法执行,并且在显示错误信息时,MySQL会打印一个文件行号以及错误位置,帮助定位错误所在。
CREATE TABLE “MyTable” (“column1″,”column2”);
这会引发一个错误,如:ER_TABLE_NAME_IN_UPPER_CASE_NOT_ALLOWED。
解决方法:要解决该错误,可以重新命名当前表,将大写字母替换为小写字母。例如,更改以上SQL查询,可以以下面的格式重写:
CREATE TABLE “mytable” (“column1″,”column2”);
请注意,MySQL中的表名(或任何标识符)都是区分大小写的,因此使用大写字母命名表是非法的。
另外,要防止此类错误,可以在MySQL实例中设置case_sensitive_table_names参数。打开此参数将确保MySQL对标识符(包括表名)的大小写敏感性。该参数的正确值是0,表示标识符的大小写不重要,因此用户可以使用大写字母来命名表,而不会出现ER_TABLE_NAME_IN_UPPER_CASE_NOT_ALLOWED错误。
总而言之,用户应避免在MySQL实例中使用大写字母来命名表,或者在创建表时设置case_sensitive_table_names参数,以确保对表名的大小写敏感性。