Для MySQL:
1) получают Таблица/Поля метаданных
SELECT table_schema, table_name, column_name, ordinal_position, data_type,
numeric_precision, column_type, column_default, is_nullable, column_comment
FROM information_schema.columns
WHERE (table_schema='schema_name' and table_name = 'table_name')
order by ordinal_position;
ИЛИ
show fields from 'table_name'
2) получить ключи ссылаются откладывать это на потом таблице
SELECT `REFERENCED_TABLE_NAME`
FROM `information_schema`.`KEY_COLUMN_USAGE`
WHERE
`TABLE_NAME` = 'table_name' AND
`COLUMN_NAME` = 'Column_Name'
3) получают индексы (первичные и внешние) для таблицы
show keys from `table_name`
5) получить все индексы и referreced таблицы
SELECT *
FROM `KEY_COLUMN_USAGE`
WHERE
`TABLE_NAME` = 'table_name' AND
`TABLE_SCHEMA` = 'schema_name'
ИЛИ
SELECT *
FROM `REFERENTIAL_CONSTRAINTS`
WHERE
`TABLE_NAME` = 'table_name' AND
`CONSTRAINT_SCHEMA` = 'schema_name'
6) получают Хранимые процедуры
SELECT *
FROM `ROUTINES`
WHERE
`ROUTINE_SCHEMA` = 'schema_name'
7) получают Триггеры
SELECT *
FROM `TRIGGERS`
WHERE
`TRIGGER_SCHEMA` = 'schema_name'
8) получаем СОБЫТИЯ
SELECT *
FROM `EVENTS`
WHERE
`EVENT_SCHEMA` = 'schema_name'
9) получить МНЕНИЯ
SELECT *
FROM `VIEWS`
WHERE
`TABLE_NAME` = 'table_name' AND
`TABLE_SCHEMA` = 'schema_name'
SHOW COLUMNS не показывает УНИКАЛЬНОЕ ограничение из того, что я могу сказать (только первичные и внешние ключи), но я могу использовать SHOW CREATE TABLE, если мне нужно.Я просто искал способ специально изолировать ограничения, не возвращая другую информацию. – VirtuosiMedia
вы можете получить уникальную информацию от SHOW INDEX FROM table_name – enobrev
Проверьте ссылку, которую я разместил. В подзаголовке с подробным описанием «ключевого» столбца говорится, что это могут быть либо «PRI», «UNI», «MUL», либо пустые. «UNI» указывает на уникальное поле. – fluffels