Tenía una asignación para cada tabla para contar las columnas que aceptan nulos. Fácil:Encontrar columnas que NO son NULAS en PostgreSQL
SELECT table_name, count(*) FROM INFORMATION_SCHEMA.COLUMNS
WHERE is_nullable='NO'
GROUP BY table_name;
ahora tengo que modificar esto para contar "columnas que tienen la propiedad 'NOT NULL'". ¿El siguiente código hará esto o solo comprobará que el nombre de la columna meteorológica no es nulo?
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;
Si no ... ¿Algún consejo?
Creo que la pregunta es si la columna se estableció NOT NULL explícitamente o si es una clave principal (que nunca puede ser nula). Si es así, no parece que COLUMNS tenga esa información. Puede tener que buscar a través de la columna def en pg_attrdef para NOT NULL. De lo contrario, solo está reafirmando su primera consulta. –
Parece que COLUMNS tiene esa información para mí. Declarar una columna ya sea 'NOT NULL PRIMARY KEY' o simplemente 'PRIMARY KEY' establece is_nullable a 'NO'. Las columnas declararon explícitamente NULL y los conjuntos NULL declarados implícitamente son_nulables a 'SÍ'. –