PostgreSQL/MogDB/openGauss怎樣獲取表上依賴於該表的檢視
一、實現語句
postgres=# select relnamespace,relname,relkind from pg_class where oid in( select c.ev_class from pg_depend a,pg_depend b,pg_class pc,pg_rewrite c where a.refclassid=1259 and b.deptype='i' and a.classid=2618 and a.objid=b.objid and a.classid=b.classid and a.refclassid=b.refclassid and a.refobjid<>b.refobjid and pc.oid=a.refobjid and c.oid=b.objid and relnamespace in (select oid from pg_namespace where nspname='public') and pc.relname='t1'); relnamespace | relname | relkind --------------+---------+--------- (0 rows)
二、建立一個依賴於t1表的檢視a1測試
postgres=# create view a1 as select * from t1; CREATE VIEW postgres=# select relnamespace,relname,relkind from pg_class where oid in( select c.ev_class from pg_depend a,pg_depend b,pg_class pc,pg_rewrite c where a.refclassid=1259 and b.deptype='i' and a.classid=2618 and a.objid=b.objid and a.classid=b.classid and a.refclassid=b.refclassid and a.refobjid<>b.refobjid and pc.oid=a.refobjid and c.oid=b.objid and relnamespace in (select oid from pg_namespace where nspname='public') and pc.relname='t1'); relnamespace | relname | relkind --------------+---------+--------- 2200 | a1 | v (1 row)
查詢語句裡的, a.refclassid=1259,這個1259是pg_class的oid,a.classid=2618的2618是pg_rewrite的oid。
結果裡relnamespace=2200是public這個schema的oid,可以查詢pg_namespace得到
postgres=# select oid,nspname from pg_namespace where oid=2200; oid | nspname ------+--------- 2200 | public (1 row)
因此依賴於public.t1的檢視是public.a1。
三、MogDB/openGauss也可以用同樣的方法
MogDB=# select relnamespace,relname,relkind from pg_class where oid in( MogDB(# select c.ev_class MogDB(# from pg_depend a,pg_depend b,pg_class pc,pg_rewrite c MogDB(# where a.refclassid=1259 MogDB(# and b.deptype='i' MogDB(# and a.classid=2618 MogDB(# and a.objid=b.objid MogDB(# and a.classid=b.classid MogDB(# and a.refclassid=b.refclassid MogDB(# and a.refobjid<>b.refobjid MogDB(# and pc.oid=a.refobjid MogDB(# and c.oid=b.objid MogDB(# and relnamespace in (select oid from pg_namespace where nspname='public') and pc.relname='t1'); relnamespace | relname | relkind --------------+---------+--------- 2200 | a1 | v (1 row)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69990629/viewspace-2927703/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- openGauss/MogDB列存表的delta表測試
- MogDB/openGauss學習筆記-獲取物件DDL筆記物件
- Postgresql系統表/檢視SQL
- postgresql如何檢視所有表SQL
- PostgreSQL 函式獲取表DDLSQL函式
- MOGDB/openGauss與PostgreSQL關於GBK字符集問題SQL
- MOGDB/openGauss與PostgreSQL關於GDK字符集問題SQL
- 根據openGauss/MogDB的lwtid檢視執行緒堆疊執行緒
- openGauss/MogDB列存表vacuum DELTAMERGE過程申請的鎖
- idea檢視依賴樹Idea
- Maven檢視依賴樹Maven
- 【工具】IDEA怎麼檢視maven依賴鏈路?IdeaMaven
- Sql server 檢視錶引用、依賴項,刪除表及約束 指令碼SQLServer指令碼
- PostgreSQL獲取建表語句儲存過程SQL儲存過程
- openGauss/MogDB的TPCH測試
- openGauss libpq使用依賴的標頭檔案
- .NET控制檯獲取依賴注入例項依賴注入
- MogDB openGauss故障排查流程
- Android下檢視SO庫被依賴的情況Android
- 檢視鎖表
- Angular 使用 Injector API 人工獲取依賴注入的例項AngularAPI依賴注入
- MySQL進階實戰6,快取表、檢視、計數器表MySql快取
- JDBC獲取表的列數JDBC
- 如何檢視 SpringBoot 是否依賴了 logf42Spring Boot
- openGauss/MOGDB與PG等待事件事件
- 四、yum獲取安裝的軟體包及依賴包
- postgresql怎麼匯入表SQL
- MogDB/openGauss中merge的語法解析
- 在django中怎麼檢視建立的資料表Django
- 透視表excel透視表怎麼做 excel的資料透視表怎麼弄Excel
- SAP ABAP報表依賴設計原理詳解
- Laravel 依賴注入方式驗證表單欄位Laravel依賴注入
- 獲取表空間DDL
- 使用Gradle檢視Android專案中庫的依賴關係GradleAndroid
- 怎樣獲取jstree的節點資料_大資料獲客是怎樣獲取精準客源的JS大資料
- MogDB openGauss常用查詢彙總
- MogDB/openGauss如何實現事務的rollback
- openGauss/MogDB的uncommitted xmin問題解決MIT