J'avais une affectation pour chaque table pour compter les colonnes nullables. Facile:
SELECT table_name, count(*) FROM INFORMATION_SCHEMA.COLUMNS
WHERE is_nullable='NO'
GROUP BY table_name;
Maintenant, je dois le modifier pour compter "les colonnes qui ont la propriété" NOT NULL "". Le code suivant fera-t-il cela ou vérifiera-t-il simplement que le nom de la colonne météo n'est pas nul?
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 non ... Des conseils?
Non.
Cette requête
SELECT DISTINCT column_name, table_name
FROM INFORMATION_SCHEMA.COLUMNS
WHERE column_name IS NOT NULL
renverra toutes les lignes qui ont une valeur dans la colonne "nom_colonne".
Toutes les lignes de cette table auront toujours une valeur dans la colonne "nom_colonne".
Avez-vous juste besoin de savoir combien de colonnes sont nullables et combien sont non nullables?
SELECT is_nullable, COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
GROUP BY is_nullable;
Compter par nom de table? Je pense que vous pouvez l'utiliser.
SELECT table_name, is_nullable, count(*)
FROM INFORMATION_SCHEMA.COLUMNS
GROUP BY table_name, is_nullable
ORDER BY table_name, is_nullable;
Pour obtenir un nombre de toutes les colonnes NOT NULL dans n'importe quelle table, utilisez:
SELECT count(*)
FROM information_schema.columns
WHERE table_schema = 'table_schema_here'
AND table_name = 'table_name_here'
AND is_nullable = 'YES';
J'espère que cela aidera quelqu'un.