Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да намеря всички релации между всички mysql таблици?

По-добрият начин, програмно казано, е събирането на данни от INFORMATION_SCHEMA.KEY_COLUMN_USAGE таблица, както следва:

SELECT 
  `TABLE_SCHEMA`,                          -- Foreign key schema
  `TABLE_NAME`,                            -- Foreign key table
  `COLUMN_NAME`,                           -- Foreign key column
  `REFERENCED_TABLE_SCHEMA`,               -- Origin key schema
  `REFERENCED_TABLE_NAME`,                 -- Origin key table
  `REFERENCED_COLUMN_NAME`                 -- Origin key column
FROM
  `INFORMATION_SCHEMA`.`KEY_COLUMN_USAGE`  -- Will fail if user don't have privilege
WHERE
  `TABLE_SCHEMA` = SCHEMA()                -- Detect current schema in USE 
  AND `REFERENCED_TABLE_NAME` IS NOT NULL; -- Only tables with foreign keys

Има още информация за колони като ORDINAL_POSITION това може да бъде полезно в зависимост от целта ви.

Повече информация: http://dev.mysql.com /doc/refman/5.1/en/key-column-usage-table.html



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Мониторинг на напредъка на дълги заявки

  2. Основите на настройката на MySQL на специализирани сървъри

  3. MySQL Trigger:копирайте стойността на auto_increment в друга колона при вмъкване

  4. Как да експортирате и импортирате .sql файл от командния ред с опции?

  5. Как да изчислим сумата от две колони от две различни таблици без клауза Къде?