gpt4 book ai didi

mysql - 有没有办法在下次重新启动之前禁用特定 mysql 数据库的区分大小写选项?

转载 作者:行者123 更新时间:2023-11-29 15:38:46 25 4
gpt4 key购买 nike

MySQL(Ubuntu 16.04 上的版本 5.7.24,小写表名为0) : 以下查询返回错误

Error Code: 1054. Unknown column 'K.fieldname' in 'where clause'

SELECT *
FROM mytab k
WHERE K.fieldname IS NULL;

(InnoDB)表 mytab 的 Alies 名称为小写(k),字段名称为由大写 (K) 字母引用。

是否有任何选项可以在不更改代码或 my.cnf 设置的情况下解决此问题(例如设置变量 sessionwise 或 tablewise ...)。

最佳答案

您收到的错误似乎与 lower_case_table_names 参数设置无关。 Documentation中明确提到了:

Note

Although database, table, and trigger names are not case sensitive on some platforms, you should not refer to one of these using different cases within the same statement. The following statement would not work because it refers to a table both as my_table and as MY_TABLE:

mysql> SELECT * FROM my_table WHERE MY_TABLE.col=1;

因此,除了修复查询并在整个查询中使用相同的别名大小写之外,您没有其他解决方案:

SELECT *
FROM mytab k
WHERE k.fieldname IS NULL; /* <-- use small k here */

关于mysql - 有没有办法在下次重新启动之前禁用特定 mysql 数据库的区分大小写选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57906647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com