postgresql数据库 怎么写sql语句得到数据表中字段名称??

时间:2022-09-10 12:32:14
postgresql数据库 怎么写sql语句得到数据表中字段名称

搜了一个:select   name   from   syscolumns   where   id=object_id('表名称')
不适合psql,

ERROR:  relation "syscolumns" does not exist

********** 错误 **********

ERROR: relation "syscolumns" does not exist
SQL 状态: 42P01

8 个解决方案

#1




mysql> desc extensions;
+-------------+--------------+------+-----+---------+-------+
| Field       | Type         | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| context     | varchar(45)  |      | PRI | default |       |
| extension   | varchar(45)  |      | PRI |         |       |
| priority    | varchar(5)   |      | PRI | 1       |       |
| application | varchar(45)  |      |     |         |       |
| args        | varchar(255) | YES  |     | NULL    |       |
| descr       | text         | YES  |     | NULL    |       |
| flags       | int(1)       |      |     | 0       |       |
+-------------+--------------+------+-----+---------+-------+


== 思想重于技巧 ==

#2


需要在网页上显示的, sql语句

#3


没有人知道吗? 

我试了一下:select   *  from   pg_attribute 
显示出了所有数据库的所有字段名称,我不知道后面的where 条件语句应该怎样写,做的的请发言,帮一下

#4


在线等,请知道怎么写的,示范一下

#5


43.7. pg_attribute
pg_attribute 表存储关于表的字段的信息。数据库里每个表的每个字段都在 pg_attribute 里有一行。还有用于索引,以及所有在 pg_class 里有记录的对象。

术语属性等效于列/字段,使用它是历史原因。

#6



 select attname,atttypid from pg_attribute where attrelid = ( select relfilenode from pg_class where relname = '你的表名') and attnum > 0;

#7



t_girl=# \d t
                             Table "public.t"
  Column  |     Type      |                   Modifiers                    
----------+---------------+------------------------------------------------
 id       | integer       | not null default nextval('t_id_seq'::regclass)
 username | character(20) | not null
Indexes:
    "t_pkey" PRIMARY KEY, btree (id)

t_girl=#  select attname,atttypid from pg_attribute where attrelid = ( select relfilenode from pg_class where relname = 't') and attnum > 0;
 attname  | atttypid 
----------+----------
 id       |       23
 username |     1042
(2 rows)

t_girl=# 

#8


\?就有帮助
想看表结构打
\d [tablename]

#1




mysql> desc extensions;
+-------------+--------------+------+-----+---------+-------+
| Field       | Type         | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| context     | varchar(45)  |      | PRI | default |       |
| extension   | varchar(45)  |      | PRI |         |       |
| priority    | varchar(5)   |      | PRI | 1       |       |
| application | varchar(45)  |      |     |         |       |
| args        | varchar(255) | YES  |     | NULL    |       |
| descr       | text         | YES  |     | NULL    |       |
| flags       | int(1)       |      |     | 0       |       |
+-------------+--------------+------+-----+---------+-------+


== 思想重于技巧 ==

#2


需要在网页上显示的, sql语句

#3


没有人知道吗? 

我试了一下:select   *  from   pg_attribute 
显示出了所有数据库的所有字段名称,我不知道后面的where 条件语句应该怎样写,做的的请发言,帮一下

#4


在线等,请知道怎么写的,示范一下

#5


43.7. pg_attribute
pg_attribute 表存储关于表的字段的信息。数据库里每个表的每个字段都在 pg_attribute 里有一行。还有用于索引,以及所有在 pg_class 里有记录的对象。

术语属性等效于列/字段,使用它是历史原因。

#6



 select attname,atttypid from pg_attribute where attrelid = ( select relfilenode from pg_class where relname = '你的表名') and attnum > 0;

#7



t_girl=# \d t
                             Table "public.t"
  Column  |     Type      |                   Modifiers                    
----------+---------------+------------------------------------------------
 id       | integer       | not null default nextval('t_id_seq'::regclass)
 username | character(20) | not null
Indexes:
    "t_pkey" PRIMARY KEY, btree (id)

t_girl=#  select attname,atttypid from pg_attribute where attrelid = ( select relfilenode from pg_class where relname = 't') and attnum > 0;
 attname  | atttypid 
----------+----------
 id       |       23
 username |     1042
(2 rows)

t_girl=# 

#8


\?就有帮助
想看表结构打
\d [tablename]