2011-02-18 64 views
0

建议GUI工具查看依赖对象数据库MySQL。
例如:依赖项对象MySQL

USE db; 

CREATE TABLE t1(
    id INT(11) NOT NULL, 
    `column` INT(11) DEFAULT NULL, 
    UNIQUE INDEX id (id) 
); 

CREATE TABLE t2(
    id INT(11) NOT NULL, 
    `column` INT(11) DEFAULT NULL, 
    INDEX FK_t2_t1_id (`column`), 
    CONSTRAINT FK_t2_t1_id FOREIGN KEY (`column`) 
    REFERENCES t1 (id) ON DELETE RESTRICT ON UPDATE RESTRICT 
); 

CREATE TABLE t3(
    id INT(11) NOT NULL, 
    `column` INT(11) DEFAULT NULL, 
    INDEX FK_t3_t1_id (`column`), 
    CONSTRAINT FK_t3_t1_id FOREIGN KEY (`column`) 
    REFERENCES t1 (id) ON DELETE RESTRICT ON UPDATE RESTRICT 
); 

DELIMITER $$ 

CREATE DEFINER = 'root'@'localhost' 
PROCEDURE procedure1() 
BEGIN 
    SELECT 
    * 
    FROM 
    db.t1; 
END 
$$ 
DELIMITER ; 

我想看看哪些对象是指表T1。 在这个例子中,它是t2,t3和procedure1

+0

什么?我不明白。 – 2011-02-18 15:32:26

+0

你有没有发现过这样的工具? – 2011-12-29 21:47:24

回答

1

你的问题并不清楚,但它听起来像你正在寻找某种GUI工具来用MySQL进行数据建模。如果这是正确的,请尝试查看MySQL Workbench

2

这很可能是你要找的。这些信息可以在information_schema中找到。

 SELECT pk.constraint_schema  AS PKDatabaseName 
      , pk.table_name    AS PKObjectName 
      , fk_cols.column_name  AS PKColumnName 
      , fk_cols.referenced_table_schema AS FKDatabaseName 
      , fk_cols.referenced_table_name AS FKObjectName 
      , fk_cols.referenced_column_name AS FKColumnName 
      , pk.constraint_name   AS ConstraintName 
      , fk_cols.ordinal_position AS ColumnIdx 
     FROM information_schema.table_constraints pk 
INNER JOIN information_schema.key_column_usage fk_cols 
     ON pk.constraint_schema = fk_cols.table_schema 
     AND pk.table_name  = fk_cols.table_name 
     AND pk.constraint_name = fk_cols.constraint_name 
     WHERE pk.constraint_type = 'FOREIGN KEY'