mysql - 依赖对象 MySQL

标签 mysql

建议使用 GUI 工具查看依赖对象数据库 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

最佳答案

这很可能就是您正在寻找的。这些信息可以在 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'    

关于mysql - 依赖对象 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5043144/

相关文章:

PHP表单在页面刷新后隐藏而不是在提交后隐藏?

mySQL 选择去年每个月有交易的任何部门

mysql - Docker:Mysql在启动后几秒钟后崩溃

php - 我多久可以通过 PHP 查询 MySQL 数据库

mysql - 如何让 bash 将命令的一部分解释为 MySQL 命令

mysql - MySQL 表中具有相同字段的两个索引

每年每季度的 MySQL 计数,计数为 0

php - 在模态视图上显示所选行的完整信息

php - 为什么第一次启动网站时没有 session ?

php - 解析错误 : syntax error, 意外 T_ELSE