代码之家  ›  专栏  ›  技术社区  ›  xkeshav

mysql以字母方式导出sql dump,导致导入时出现外键约束错误

  •  7
  • xkeshav  · 技术社区  · 14 年前

    我的数据库(mysql)中有10个表。下面给出了其中两个

    tbl_州

    state_id    |int(10)  |UNSIGNED ZEROFILL  auto_increment 
    state_name  |varchar(40) 
    

    tbl_市

    city_id     |int(10)  |UNSIGNED ZEROFILL  auto_increment 
    city_name   |varchar(40) |
    state_code  |int(10)  | UNSIGNED ZEROFILL (FK reference with tbl_state.state_id)
    

    外键约束: tbl_city.state_代码 是指 tbl_state.state_id(状态ID) .

    现在我的问题是

    当我导出所有表并再次导入时,它会给出

    foreign key constraint fails error.... 因为当我导出mysql dump时,SQL dump是按字母顺序表生成的 和 tbl_市 先于 tbl_州 在数据库中。

    请建议我如何处理这种情况?

    是否所有表都按外键引用的顺序排列?

    2 回复  |  直到 7 年前
        1
  •  7
  •   reko_t    14 年前

    要在转储开始时禁用外键检查,然后在转储所有数据后启用它们:

    SET FOREIGN_KEY_CHECKS=0
    
    ... dump ...
    
    SET FOREIGN_KEY_CHECKS=1
    
        2
  •  0
  •   A_01    7 年前

    如果你使用sqlyog的话。使用此属性。 enter image description here