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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MogDB/openGauss學習筆記-獲取物件DDL筆記物件
- postgresql如何檢視所有表SQL
- PostgreSQL 函式獲取表DDLSQL函式
- Sql Server 獲取指定表、檢視結構SQLServer
- MOGDB/openGauss與PostgreSQL關於GDK字符集問題SQL
- MOGDB/openGauss與PostgreSQL關於GBK字符集問題SQL
- 根據openGauss/MogDB的lwtid檢視執行緒堆疊執行緒
- idea檢視依賴樹Idea
- Sql server 檢視錶引用、依賴項,刪除表及約束 指令碼SQLServer指令碼
- 怎麼樣理解依賴注入?依賴注入
- 【工具】IDEA怎麼檢視maven依賴鏈路?IdeaMaven
- PostgreSQL獲取建表語句儲存過程SQL儲存過程
- .NET控制檯獲取依賴注入例項依賴注入
- 獲取某張表的表結構
- javascript如何獲取內聯樣式和外部樣式表的值JavaScript
- 從檢視看Oracle物件依賴機制Oracle物件
- MogDB openGauss故障排查流程
- 在WPF中使用依賴注入的方式建立檢視依賴注入
- ASP.NET的快取依賴機制-SQL快取依賴篇ASP.NET快取SQL
- Angular 使用 Injector API 人工獲取依賴注入的例項AngularAPI依賴注入
- openGauss libpq使用依賴的標頭檔案
- sql2005 獲取表欄位資訊和檢視欄位資訊SQL
- form表單提交,後臺怎麼獲取select的值?後臺直接獲取即可,和input方式一樣。ORM
- postgresql怎麼匯入表SQL
- 透過shell分析表依賴的層級關係
- 通過shell分析表依賴的層級關係
- MySQL進階實戰6,快取表、檢視、計數器表MySql快取
- iOS開發之表檢視愛上CoreDataiOS
- JDBC獲取表的列數JDBC
- Android下檢視SO庫被依賴的情況Android
- openGauss/MOGDB與PG等待事件事件
- 四、yum獲取安裝的軟體包及依賴包
- 透視表excel透視表怎麼做 excel的資料透視表怎麼弄Excel
- SAP ABAP報表依賴設計原理詳解
- Laravel 依賴注入方式驗證表單欄位Laravel依賴注入
- js獲取非內部取樣式表中定義的屬性值JS
- 在django中怎麼檢視建立的資料表Django
- iOS開發 如何通過檢視(view)獲取該檢視所在的控制器(viewController)iOSViewController