MYSQL查询外键依赖_并删除

1、查询哪些表加了外键依赖

SELECT C.TABLE_SCHEMA            拥有者,
           C.REFERENCED_TABLE_NAME  父表名称 ,
           C.REFERENCED_COLUMN_NAME 父表字段 ,
           C.TABLE_NAME             子表名称,
           C.COLUMN_NAME            子表字段,
           C.CONSTRAINT_NAME        约束名,
           T.TABLE_COMMENT          表注释,
           R.UPDATE_RULE            约束更新规则,
           R.DELETE_RULE            约束删除规则
      FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE C
      JOIN INFORMATION_SCHEMA. TABLES T
        ON T.TABLE_NAME = C.TABLE_NAME
      JOIN INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS R
        ON R.TABLE_NAME = C.TABLE_NAME
       AND R.CONSTRAINT_NAME = C.CONSTRAINT_NAME
       AND R.REFERENCED_TABLE_NAME = C.REFERENCED_TABLE_NAME
      WHERE C.REFERENCED_TABLE_NAME IS NOT NULL 
            and C.TABLE_SCHEMA = '数据库名'
            and C.REFERENCED_TABLE_NAME = '被依赖的表名';

2、删除外键

ALTER TABLE ${表名} DROP FOREIGN KEY ${外键名};

1)逐个删除吧,外键名可能不一样
2)如果多的话,建议用java写个main方法生成sql

猜你喜欢

转载自blog.csdn.net/weixin_43460193/article/details/125082276
今日推荐