26
我爲每個表分配了可以爲空的列。易:查找PostgreSQL中不爲NULL的列
SELECT table_name, count(*) FROM INFORMATION_SCHEMA.COLUMNS
WHERE is_nullable='NO'
GROUP BY table_name;
現在我要修改這個來算NOT NULL「‘有屬性欄’」。下面的代碼會這樣做嗎?還是隻是檢查天氣列名不爲空?
CREATE TEMP TABLE A AS
SELECT DISTINCT column_name, table_name AS name FROM INFORMATION_SCHEMA.COLUMNS
WHERE column_name IS NOT NULL
GROUP BY table_name, column_name;
SELECT name, count(*) FROM A
GROUP BY name;
如果沒有...任何建議?
我認爲問題在於是否明確設置了NOT NULL列或者它是否是主鍵(它永遠不能爲空)。如果是這樣,它看起來不像COLUMNS那樣。可能必須搜索pg_attrdef中的列def以獲取NOT NULL。否則,它只是重申您的第一個查詢。 – 2011-03-17 22:10:18
它看起來像COLUMNS有這個信息給我。聲明一個列'NOT NULL PRIMARY KEY'或者簡單地'PRIMARY KEY'設置is_nullable爲'NO'。顯式聲明爲NULL並且隱式聲明NULL集的列is_nullable爲'YES'。 – 2011-03-18 01:11:47