无法从 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 代码。
我正在尝试从特定的 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 代码。