1 2 3 4 5 6 7 8 9 10 11 12 13
| SELECT c.column_name, c.data_type, c.is_nullable, CAST('t' AS boolean) AS is_pk
FROM information_schema.columns c
LEFT JOIN information_schema.constraint_column_usage cc ON cc.column_name = c.column_name
WHERE c.table_name = 'services'
AND cc.constraint_name = 'pk_'||c.table_name
UNION
SELECT c.column_name, c.data_type, c.is_nullable, CAST('f' AS boolean) AS is_pk
FROM information_schema.columns c
WHERE c.table_name = 'services'
AND c.column_name NOT IN (SELECT c.column_name
FROM information_schema.constraint_column_usage c
WHERE c.table_name = 'services'
AND c.constraint_name = 'pk_'||c.table_name) |
Partager