我可以通过phpmyadmin替换DB中的表吗?表有两个外键,我可以通过禁用外键检查(或完全删除它)来截断它,但是当我尝试重新加载它时,如果我不启用外键检查它不会连接到它应该表(我不能点击外国ID,通常它会带我到相关表)。如果我启用了外键检查,则会出现错误
#1452 - Cannot add or update a child row: a foreign key constraint fails
有没有办法通过保持关系活着来以某种方式用过去的同一个表替换表?
答案 0 :(得分:0)
我认为该表包含数据...在删除表之前尝试清除表。
答案 1 :(得分:0)
实际上“您不需要禁用外键检查”,如果您只想删除(或截断)存储子记录的表。您应该能够删除所有并稍后重新插入它们。请这样试试。
如果要使用主键截断表而不删除子记录,则需要禁用外键检查。 (但这不合理。)
按顺序执行以下步骤可以正常工作而不会禁用任何约束。如果您不遵守订单,它将失败。您可以跳过步骤2和3,仅使用1和4。
使用指向主键的外键删除所有子记录。
使用主键删除所有主记录。
使用主键重新插入所有主记录。
- 醇>
使用指向主键的外键重新插入所有子记录。
无论如何,你听到的错误听起来就像你试图插入旧数据一样,外键指向的主表中缺少匹配的记录。
您可以查看: