mysql - 如何在mysql中选择没有主键的所有列?

标签 mysql sql

我将列出 mysql 中除主键之外的表的所有列。 注意:操作是自动的,所以我不知道字段的名称。 你能帮我做这个查询吗?

最佳答案

如果您要使用任何长度的数据库,那么这是值得做一些研究的事情。

到目前为止,我使用过的所有 DBMS 都有一种查看约束、列和表信息的方法。 INFORMATION_SCHEMA 中可能包含用于 MySQL 的可以帮助您完成您想要的操作的内容:

TABLE_CONSTRAINTS对此的 MySQL 引用是 here .

SELECT table_name, constraint_name, constraint_type FROM INFORMATION_SCHEMA.table_constraints;

COLUMNS对此的 MySQL 引用是 here.

SELECT column_name FROM INFORMATION_SCHEMA.columns;

KEY_COLUMN_USAGE

你应该能够做这样的事情来得到你想要的:

SELECT INFORMATION_SCHEMA.key_column_usage.column_name 
FROM INFORMATION_SCHEMA.key_column_usage
JOIN INFORMATION_SCHEMA.table_constraints 
ON INFORMATION_SCHEMA.key_column_usage.column_name = INFORMATION_SCHEMA.table_constraints.column_name
WHERE INFORMATION_SCHEMA.table_constraints.constraint_type <> 'PRIMARY KEY'

这基本上应该是您所需要的。当需要获取有关架构的信息时,此类 View /表可能是您最好的 friend 。

我希望这些信息对您有所帮助。

关于mysql - 如何在mysql中选择没有主键的所有列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26550801/

相关文章:

php - MySQL 仅回显一个元素

php - 这个数据库查询有什么问题?

mysql - INDEX 用法不同 - 找到了解决方案

sql - 使用 Postgresql 计算数学级数

mysql - 如何根据值连接重复值

mysql - (MySQL : Wildcard in FROM clause?

mysql - 表间SQL查询

php - 存储二进制数据mysql

MYSQL 查询 CASE 返回 ELSE

mysql - SQL(MYSQL) 选择该列总和 > 0 的列名