我有一个列名列表,这些列名可能在特定的MySQL数据库中,也可能不在特定的数据库中。
是否可以查询数据库以查看列名是否存在?当我不知道它可能在哪一张桌子的时候?
如果是,我会怎样做?
这个问题的答案是假设我知道它在哪个表中。我不如果不存在,如何创建列?
这个答案是接近的,但也假设我知道每个列的确切位置(我正在尝试自动插入,并且存在的列名可能与将来插入的列名不同,但包含相同的数据) 如果列存在,如何选择特定行;如果列不存在,则如何选择所有行。
发布于 2021-11-12 14:44:13
感谢胡须指出了解释Information_schema的另一个问题。
使用MySql,您将查询SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS;并获取所有列的列表
我要补充的是,它给出了所有列名的列表,甚至包括MySql生成的列名。
发布于 2021-11-12 15:21:26
正如您已经注意到的,您可以使用Information_Schema,然后也可以知道列是表的一部分:
SELECT *
FROM information_schema.columns
LEFT JOIN information_schema.tables
ON columns.table_name = tables.table_name
AND columns.table_catalog = tables.table_catalog`SQL Fiddle链接:
https://dba.stackexchange.com/questions/302538
复制相似问题