簡體   English   中英

PostgreSQL-選擇不存在特定列的表

[英]PostgreSQL - Select tables where specific column is not present

我在PostgreSQL數據庫中有一個包含約3000個表的模式,所有表都包含一行並包含以下列:

idareausegeomsite_id

但是,我發現至少有一個表site_id列。 我想知道是否還有更多這些。我如何查詢沒有site_id列的site_id

我的以下想法行不通。 有什么建議么?

SELECT table_name
FROM information_schema.columns 
WHERE table_schema = 'schema_A' AND column_name NOT LIKE 'site_id'
GROUP BY table_name;

一種簡單的方法是計算side_id在該表的列列表中出現多少次。 如果總和為零,則該表沒有site_id

SELECT table_name
FROM information_schema.columns 
WHERE table_schema = 'schema_A'
GROUP BY table_name
HAVING SUM(CASE WHEN column_name LIKE 'site_id' THEN 1 ELSE 0 END) = 0;

我也不確定它是否是故意的,但是LIKE 'site_id'這樣的效果與= 'site_id' 如果要檢查它是否包含site_id ,則更合適LIKE '%site_id%'方法是LIKE '%site_id%'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM