无法从 information_schema (MySQL/MariaDB) 访问列名称

Unable to access column names from information_schema (MySQL/MariaDB)

我正在尝试从特定的 table 中获取列名称。

编辑: 我一开始忘了提到它,但是 python 脚本即毫无问题地获取 table 名称( 不同的查询 ),但是选择列名称的那个 运行s 出错了。

当我在 DBeaver 的 SQL 编辑器中编写此查询(见下文)时,我得到了预期的结果。但是当我 运行 我的 python 脚本中的查询时,我得到一个错误 COLUMN_NAME 不存在。

SELECT column_name FROM information_schema.columns WHERE table_schema=<database-name> AND table_name=<table-name>;

(数据库名和table名在真实查询中写对了)

我还需要提一下,当我以前使用 MySQL Workbench 时,这个用 python 编写的查询按预期工作。问题是在我换成DBeaver做数据库管理的时候出现的。

我是否需要在 DBeaver 中执行一些进一步的步骤才能使 information_schema 按预期工作?

mysql --version >> mysql  Ver 15.1 Distrib 10.4.13-MariaDB, for Linux (x86_64) using  EditLine wrapper

对你的服务器说这个

SHOW VARIABLES LIKE 'lower_case_table_names';

如果您获得值 0,您的 table 名称区分大小写。 (1 表示不区分大小写)。请参阅 a bit more explanation

如果您的姓名区分大小写,您可能需要尝试使用这种大小写进行查询。

SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=<database-name> AND TABLE_NAME=<table-name>;

请务必提供 <database-name><table-name> 用于创建它们。

WHERE table_schema=<database-name> AND table_name=<table-name>;

如果这两个名字周围没有引号,并且名字中有标点符号或空格,则可能会出现以下几种错误中的任何一种。

不要简单地把名字贴进去;引用它们并转义某些字符。或者使用一些“绑定”技术。向我们展示构建字符串 构建的 SQL 字符串的实际 Python 代码。