📜  postgres 获取列名 (1)

📅  最后修改于: 2023-12-03 15:18:38.091000             🧑  作者: Mango

获取 PostgreSQL 表的列名

在 PostgreSQL 数据库中获取表的列名是一个常见的需求。本文将介绍如何使用 SQL 语句和 PostgreSQL 系统表获取表的列名。

使用 SQL 语句获取列名

要获取表的列名,我们可以使用 SELECT 语句和特殊的函数 information_schema.columns。该函数返回有关表的列的信息,其中包括列名、数据类型、是否允许 NULL 等。

以下是获取表 users 的列名的 SQL 命令:

SELECT column_name
FROM information_schema.columns
WHERE table_name = 'users';

结果将返回一个包含所有列名的列表:

column_name
------------
id
username
email
password
created_at
updated_at
在 PostgreSQL 系统表中获取列名

除了使用 SQL 语句外,我们还可以查询 PostgreSQL 的系统表来获取表的列名。在 PostgreSQL 中,每个表都有一个名为 pg_attribute 的系统表,该表包含有关表的所有列的信息。

以下是获取表 users 的列名的 PostgreSQL 命令:

SELECT attname
FROM pg_attribute
WHERE attrelid = 'users'::regclass
AND attnum > 0
AND NOT attisdropped;

attnamepg_attribute 表中的一个列,它包含表 users 所有列的名称。我们使用 ::regclass 转换运算符将表名转换为其对应的 OID 值,以便将其传递给 attrelid 条件。

注意,我们还使用了 attisdropped 条件来过滤掉已删除的列。

结果将返回一个包含所有列名的列表:

attname
-----------
id
username
email
password
created_at
updated_at
总结

无论是使用 SQL 语句还是查询 PostgreSQL 的系统表,获取表的列名都是非常简单的。使用上述方法,您可以快速获得任何表的列名列表。