Выберите всю таблицу и столбец из базы данных с атрибутом первичного / уникального и внешнего ключа
Использование MySQL 8
Мне нужно импортировать в LucidChart ER, извлеченный из базы данных.
Ниже приводится запрос, который они запрашивают у exec, чтобы получить строки со всей информацией, необходимой для импорта. К сожалению, это не работает, поскольку я вижу только первичные ключи. Я пытался понять, что не так и почему не работает с другими клавишами, но не могу понять.
SELECT 'mysql' dbms
, t.TABLE_SCHEMA
, t.TABLE_NAME
, c.COLUMN_NAME
, c.ORDINAL_POSITION
, c.DATA_TYPE
, c.CHARACTER_MAXIMUM_LENGTH
, n.CONSTRAINT_TYPE
, k.REFERENCED_TABLE_SCHEMA
, k.REFERENCED_TABLE_NAME
, k.REFERENCED_COLUMN_NAME
FROM INFORMATION_SCHEMA.TABLES t
LEFT
JOIN INFORMATION_SCHEMA.COLUMNS c
ON t.TABLE_SCHEMA = c.TABLE_SCHEMA
AND t.TABLE_NAME = c.TABLE_NAME
LEFT
JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE k
ON c.TABLE_SCHEMA = k.TABLE_SCHEMA
AND c.TABLE_NAME = k.TABLE_NAME
AND c.COLUMN_NAME = k.COLUMN_NAME
LEFT
JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS n
ON k.CONSTRAINT_SCHEMA = n.CONSTRAINT_SCHEMA
AND k.CONSTRAINT_NAME = n.CONSTRAINT_NAME
AND k.TABLE_SCHEMA = n.TABLE_SCHEMA
AND k.TABLE_NAME = n.TABLE_NAME
WHERE t.TABLE_TYPE = 'BASE TABLE'
AND t.TABLE_SCHEMA NOT IN('INFORMATION_SCHEMA','mysql','performance_schema');
Ключ информация является то, что я использую Laravel миграции. Думаю, я уже нашел ответ, но оставлю его открытым.