美文网首页
删除数据库的外键关联

删除数据库的外键关联

作者: 笑疯子 | 来源:发表于2018-07-23 14:18 被阅读13次

最近接手的一个项目,需要接入第三方支付。但是第三方要求做一个电商去包装一下。开始觉得这包装一个电商就是轻松+愉快。然后噩梦才刚刚开始,在网上随便找了一个开源的电商项目。大刀阔斧的改了一下源码,然后顺利的跑了起来。然而,在这个时候发现数据库共有近百张表,N张那么多有主要外键关联。简单的举个例子。我想要删一个商品分类,你就会发现分类关联着品牌,品牌关联着商品,商品关联着其它属性...等等等等等。

所以,我就在想,怎么能批量的干掉这些外键关联呢?

于是乎就掀起了一场我与Mysql之间的腥风血雨。

  1. 首先,批量查询并且生成alert语句
select CONCAT('ALTER TABLE `', TABLE_NAME, '` DROP FOREIGN KEY `',  CONSTRAINT_NAME, '`;') as 'drop-fk'
from information_schema.KEY_COLUMN_USAGE 
where TABLE_SCHEMA = '表模式名'
and CONSTRAINT_NAME like '外键名模糊搜索'
and TABLE_NAME = '表名';
  1. 上面的SQL执行完成后,alert语句,全选,复制,执行这些alert语句
ALTER TABLE `test` DROP FOREIGN KEY `FK4F1D86B91CAD6AEC`;
ALTER TABLE `test` DROP FOREIGN KEY `FK4F1D86B92FE2B71B`;
ALTER TABLE `test` DROP FOREIGN KEY `FK4F1D86B9387D99AC`;
ALTER TABLE `test` DROP FOREIGN KEY `FK4F1D86B95485C889`;
ALTER TABLE `test` DROP FOREIGN KEY `FK4F1D86B9664C2B1A`;
ALTER TABLE `test` DROP FOREIGN KEY `FK4F1D86B9AA7FDCCE`;
ALTER TABLE `test` DROP FOREIGN KEY `FK4F1D86B9F24E3275`;

等待着他执行完成,这样,跟这张表相关联的外键就都干掉了。

由于本人从业没有多久,对数据库又并不是很精通,相对又懒。所以只能以这种方式来解除主外键关联了。如果有大神有更好的方法,可以告诉我,不喜勿喷,个人积累。

相关文章

  • mysql 多表关联创建外键

    逻辑外键是数据库体现不出来的。物理外键是数据库知道的 一、多表关联-外键: 代码1: Foreign前面不写东西,...

  • 删除数据库的外键关联

    最近接手的一个项目,需要接入第三方支付。但是第三方要求做一个电商去包装一下。开始觉得这包装一个电商就是轻松+愉快。...

  • LitePal

    关于LitePal(github地址) 数据库相关(表关联):一对一:数据表根据外键进行关联(哪个表添加外键都可以...

  • mysq中使用sql查看数据库中所有表的外键关联情况

    比如,查询数据库为jrjnew下面的所有外键的关联情况

  • mysql 级联删除,外键约束

    对表t_user和t_book外键关联。在t_book中设置外键,如图示。其中: RESTRICT:创建约束。删除...

  • Django 多表关联

    1. 一对一关联关系 使用方法数据库体现Django程序模型通过外键关联,外键要设在多的一方OneToOneFie...

  • 数据库Mysql——Cannot delete or updat

    1,问题说明 删除有外键关联的数据或者表的时候,mysql出现报错: 2,解决办法 1,先把外键约束检查关闭SET...

  • 2018-01-19

    1对n关系:外键关联与逻辑外键外键关联缺陷:外键字段的值必须依赖于另一张表的唯一性约束字段逻辑关联缺陷:逻辑外键所...

  • Mysql复习提高

    外键约束 删除,更新时的四个选项 RESTRICT 当有关联数据时,无法删除(立即检出) NO ACTION 当有...

  • 数据库的基本应用

    数据库的基本应用: 主键 : 唯一 ,不能重复 ,不能为空 , 可以同时当外键 外键 : 将两个表关联起来 , 不...

网友评论

      本文标题:删除数据库的外键关联

      本文链接:https://www.haomeiwen.com/subject/xzfjmftx.html