Created
June 17, 2025 05:09
-
-
Save PiotrFerenc/fade29623818cfd93fe4bff725feb9eb to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
SELECT | |
c.TABLE_SCHEMA, | |
c.TABLE_NAME, | |
c.COLUMN_NAME, | |
c.DATA_TYPE, | |
c.IS_NULLABLE, | |
CASE | |
WHEN pk.COLUMN_NAME IS NOT NULL THEN 'YES' | |
ELSE 'NO' | |
END AS IS_PRIMARY_KEY, | |
CASE | |
WHEN fk.COLUMN_NAME IS NOT NULL THEN 'YES' | |
ELSE 'NO' | |
END AS IS_FOREIGN_KEY, | |
fk.REFERENCED_TABLE_NAME, | |
fk.REFERENCED_COLUMN_NAME | |
FROM | |
INFORMATION_SCHEMA.COLUMNS c | |
LEFT JOIN ( | |
SELECT | |
ku.TABLE_SCHEMA, | |
ku.TABLE_NAME, | |
ku.COLUMN_NAME | |
FROM | |
INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc | |
JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE ku | |
ON tc.CONSTRAINT_NAME = ku.CONSTRAINT_NAME | |
WHERE | |
tc.CONSTRAINT_TYPE = 'PRIMARY KEY' | |
) pk | |
ON c.TABLE_SCHEMA = pk.TABLE_SCHEMA | |
AND c.TABLE_NAME = pk.TABLE_NAME | |
AND c.COLUMN_NAME = pk.COLUMN_NAME | |
LEFT JOIN ( | |
SELECT | |
cu.TABLE_SCHEMA, | |
cu.TABLE_NAME, | |
cu.COLUMN_NAME, | |
ku.TABLE_NAME AS REFERENCED_TABLE_NAME, | |
ku.COLUMN_NAME AS REFERENCED_COLUMN_NAME, | |
rc.CONSTRAINT_NAME | |
FROM | |
INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS rc | |
JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE ku | |
ON rc.UNIQUE_CONSTRAINT_NAME = ku.CONSTRAINT_NAME | |
JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE cu | |
ON rc.CONSTRAINT_NAME = cu.CONSTRAINT_NAME | |
) fk | |
ON c.TABLE_SCHEMA = fk.TABLE_SCHEMA | |
AND c.TABLE_NAME = fk.TABLE_NAME | |
AND c.COLUMN_NAME = fk.COLUMN_NAME | |
ORDER BY | |
c.TABLE_SCHEMA, c.TABLE_NAME, c.ORDINAL_POSITION; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment