Многое можно извлечь из MySQL information_schema
, включая внешние ключи, как указано dev-null-dweller.
1
SELECT * FROM information_schema.table_constraints
WHERE table_schema = 'dbname' AND table_name='mytable';
Вместо dbname используйте функцию SCHEMA()
, чтобы задать имя базы данных в USE
.
2
Как указал Дэн Гроссман, команда
SHOW CREATE TABLE `yourtablename`
можно использовать, в основном, для получения дампа SQL оператора create table.
~ 3
MySQL предоставляет команду SHOW KEYS. Таким образом, теоретически вы можете получить FK, если вы знаете более низкий порог количества элементов и у вас мало других ключей в таблице.
SHOW KEYS FROM `address` WHERE Non_unique AND CARDINALITY > 10000
Поскольку количество элементов ключа меняется при каждом изменении внутренней базы данных, это довольно теоретически. Смотрите изменение количества элементов, например, с помощью ANALYZE TABLE
.
~ 4
Полезно придерживаться схемы именования, такой как foreigntablename_foreignfieldname
. Например, поле user_id
в таблице billing
. Несколько ORM больших фреймворков веб-контента используют эту схему.