sql >> Database teknologi >  >> RDS >> Mysql

Hvordan finder man alle relationerne mellem alle mysql-tabeller?

Den bedre måde, programmatisk set, er at indsamle data fra INFORMATION_SCHEMA.KEY_COLUMN_USAGE tabel som følger:

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

Der er flere kolonneoplysninger såsom ORDINAL_POSITION det kan være nyttigt afhængigt af dit formål.

Flere oplysninger: http://dev.mysql.com /doc/refman/5.1/da/key-column-usage-table.html



  1. SQL Server, hvordan indstilles automatisk stigning efter oprettelse af en tabel uden tab af data?

  2. Oracle rækkeantal af tabel efter antal(*) vs. NUM_ROWS fra DBA_TABLES

  3. Udfyld manglende datoer for SQL Server-forespørgselsoutput ved hjælp af CTE

  4. Microsoft SQL Server 2005/2008:XML vs tekst/varchar datatype