激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

香港云服务器
服務器之家 - 數據庫 - PostgreSQL - pgsql 實現用戶自定義表結構信息獲取

pgsql 實現用戶自定義表結構信息獲取

2021-03-07 18:41_rtf PostgreSQL

這篇文章主要介紹了pgsql 實現用戶自定義表結構信息獲取,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

1. 獲取表中普通信息:如字段名,字段類型等

?
1
2
3
SELECT column_name, data_type, ordinal_position, is_nullable
FROM information_schema."columns"
WHERE "table_name"='TABLE-NAME' -- 將 'TABLE-NAME' 換成自己的表

2.獲取所有的表和視圖

?
1
SELECT table_name, table_type FROM INFORMATION_SCHEMA.tables WHERE table_schema='public' AND table_type IN ('BASE TABLE','VIEW')

3.獲取約束注釋

?
1
SELECT obj_description(oid, 'pg_constraint') AS d FROM pg_constraint WHERE conname = constraint_name;

4.獲取表的約束

?
1
2
3
4
5
6
7
8
9
10
11
-- conname 約束名稱
-- contype 約束類型(p:主鍵, f:外鍵, c: 檢查約束, u:唯一約束)
-- conkey 約束字段
-- confkey 外鍵字段
-- consrc 檢查約束條件
-- confreltable 外鍵字段引用的表
SELECT conname, contype, conkey, consrc,
  (SELECT array_agg(column_name::text) FROM INFORMATION_SCHEMA.COLUMNS WHERE ordinal_position = any(conkey) AND table_name= 'TABLE-NAME') AS conkey,
  (SELECT column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE ordinal_position = any(confkey) AND table_name='TABLE-NAME') AS confkey,
  (SELECT relname FROM pg_class WHERE oid = confrelid) AS confreltable
FROM pg_constraint WHERE conrelid=(SELECT oid FROM pg_class WHERE relname ='TABLE-NAME'); -- 將 'TABLE-NAME' 換成自己的表

5.獲取表的觸發器

?
1
SELECT trigger_name, event_manipulation, event_object_table, action_statement, action_orientation, action_timing FROM INFORMATION_SCHEMA.TRIGGERS;

6.獲取字段的注釋

?
1
2
3
--table_oid 表的oid
--col_position 字段的位置
SELECT col_description(table_oid, col_position);

補充:查詢PostgreSQL庫中所有表的表結構信息SQL

我就廢話不多說了,大家還是直接看代碼吧~

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
select
(select relname as comment from pg_class where oid=a.attrelid) as table_name,
 row_number() over(partition by (select relname as comment from pg_class where oid=a.attrelid) order by a.attnum),
a.attname as column_name,
format_type(a.atttypid,a.atttypmod) as data_type,
(case when atttypmod-4>0 then atttypmod-4 else 0 end)data_length,
(case when (select count(*) from pg_constraint where conrelid = a.attrelid and conkey[1]=attnum and contype='p')>0 then '是' else '否' end) as 主鍵約束,
(case when (select count(*) from pg_constraint where conrelid = a.attrelid and conkey[1]=attnum and contype='u')>0 then '是' else '否' end) as 唯一約束,
(case when (select count(*) from pg_constraint where conrelid = a.attrelid and conkey[1]=attnum and contype='f')>0 then '是' else '否' end) as 外鍵約束,
(case when a.attnotnull=true then '是' else '否' end) as nullable,
col_description(a.attrelid,a.attnum) as comment
from pg_attribute a
where attstattarget=-1 and attrelid in (select oid from pg_class where relname in(select relname from pg_class where relkind ='r' and relname
in
(select tablename from pg_tables where tablename not like 'pg_%' and tablename not like 'sql_%' and schemaname not in(XXXX) and tablename not in(XXXX)
))
order by table_name,a.attnum;

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家。如有錯誤或未考慮完全的地方,望不吝賜教。

原文鏈接:https://blog.csdn.net/rantengfei1986/article/details/56670712

延伸 · 閱讀

精彩推薦
1122
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 亚洲精品久久久久久 | 91看片在线播放 | 一级毛片电影网 | 伊人二本二区 | 久久久久久亚洲综合影院红桃 | 免费观看一区 | 一级黄色在线免费观看 | 日韩精品一区二区三区中文 | 午夜视频久久 | 久久久综合视频 | 国产精品刺激对白麻豆99 | 国产精品视频免费在线观看 | 少妇一级淫片免费看 | 亚洲成人精品一区二区 | 一区二区三视频 | 国产三级精品最新在线 | 成年人高清视频在线观看 | 一本在线高清码电影 | 欧美高清第一页 | 美国一级黄色毛片 | 婷婷一区二区三区四区 | 国产伦乱视频 | 羞羞电影在线观看www | 欧美成年性h版影视中文字幕 | 国产二三区| 中文字幕 在线观看 | 久久国产精品久久久久久久久久 | av在线网站观看 | 欧美特一级片 | 亚洲成人免费电影 | xxxxhd86日本护士hd | 欧美一级片免费在线观看 | 日韩精品免费一区二区三区 | 欧美a黄 | 成年免费视频黄网站在线观看 | 91精品国产综合久久久动漫日韩 | 免费一及片| 182tv成人福利视频免费看 | 久久人添人人爽人人爽人人片av | 一分钟免费观看完整版电影 | 国产精品久久久久久久亚洲按摩 |