Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm thế nào để tìm tất cả các mối quan hệ giữa tất cả các bảng mysql?

Cách tốt hơn, nói theo chương trình, là thu thập dữ liệu từ INFORMATION_SCHEMA.KEY_COLUMN_USAGE bảng như sau:

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

Có nhiều thông tin cột hơn như ORDINAL_POSITION điều đó có thể hữu ích tùy thuộc vào mục đích của bạn.

Thông tin khác: 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. Câu lệnh SQL - CHỌN nghịch đảo của truy vấn này

  2. Chèn JPA khởi động mùa xuân trong TABLE với tên viết hoa với Hibernate

  3. Sắp xếp các bản ghi truy vấn SQL theo tần suất

  4. Thiết kế cơ sở dữ liệu tốt, số lượng thuộc tính thay đổi

  5. Sử dụng utf8mb4 với php và mysql