zoukankan      html  css  js  c++  java
  • MySQL truncate有外键约束的表

    主外键是数据库提供的一种两表之间强制关联的方法,也可以从应用层实现。
    
    我认为需要根据实际情况进行取舍,例如表不复杂,可以由应用实现,若表之间关联较多且复杂,那么交由数据库处理,至少保证不会错。
    存在主外键关联的主表,由于存在外键关联关系,因此有些操作就会禁止,例如truncate。
    SET FOREIGN_KEY_CHECKS=0;            #取消外键约束
    TRUNCATE TABLE  table_name;            
    SET FOREIGN_KEY_CHECKS=1;            #设置外键约束:
    
    总结:
    
    1. 主外键是数据库提供的强约束,可以帮助我们控制主子表之间的关系,但同时还是一把双刃剑,当然,我们认为既然定义了主外键,就是需要这种强制关系,但有时可能就会有一些变更,因此,如何取舍,需要根据实际情况来决策。
    
    2. 主外键关联中的主表,如果有数据,则不能直接用truncate方式删除,因为会认为有外键和其关联,不能直接截断主表,若需要做,可以先禁止外键约束,主表变成一个独立的表,这样就可以执行truncate了。
    

  • 相关阅读:
    LCM与GCD算法
    LCS,LIS,LICS算法
    高精度算法(C/C++)
    SystemTap
    VMware15下解决Ubuntu18.04没有网络连接问题
    Git ssh-key 配置问题
    Ubuntu18.04更换国内源
    sql 错误日志存储路径设置
    资源
    System.Data.DataTable 基本方法
  • 原文地址:https://www.cnblogs.com/plusUltra/p/10892353.html
Copyright © 2011-2022 走看看