Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
phpmyadmin替换表_Php_Mysql_Phpmyadmin - Fatal编程技术网

phpmyadmin替换表

phpmyadmin替换表,php,mysql,phpmyadmin,Php,Mysql,Phpmyadmin,我可以通过phpmyadmin替换数据库中的表吗。表有两个外键,我可以通过禁用外键检查(或完全删除)来截断它,但是当我尝试重新加载它时,如果我不启用外键检查,它就不会连接到它应该连接的表(我不能单击外键ID,通常它会将我带到相关表)。如果启用外键检查,则会出现错误 #1452 - Cannot add or update a child row: a foreign key constraint fails 有没有办法通过保持关系的活跃性,以某种方式将表替换为过去的相同表?我认为该表包含数据。

我可以通过phpmyadmin替换数据库中的表吗。表有两个外键,我可以通过禁用外键检查(或完全删除)来截断它,但是当我尝试重新加载它时,如果我不启用外键检查,它就不会连接到它应该连接的表(我不能单击外键ID,通常它会将我带到相关表)。如果启用外键检查,则会出现错误

#1452 - Cannot add or update a child row: a foreign key constraint fails

有没有办法通过保持关系的活跃性,以某种方式将表替换为过去的相同表?

我认为该表包含数据。。。试着在放下桌子之前把它清理干净

实际上“如果只想删除(或截断)存储子记录的表,则不需要禁用外键检查”。您应该能够删除所有,并在以后重新插入它们。请这样试试

如果要截断具有主键的表而不删除子记录,则需要禁用外键检查。(但这并不合理。)

在不禁用任何约束的情况下,按顺序执行的以下步骤应该可以正常工作。如果你不遵守命令,它就会失败。您可以跳过步骤2和步骤3,仅使用步骤1和步骤4

  • 删除外键指向主键的所有子记录

  • 删除具有主键的所有主记录

  • 使用主键重新插入所有主记录

  • 重新插入外键指向主键的所有子记录

  • 无论如何,您得到的错误听起来像是当您尝试插入旧数据时,外键指向的主表中缺少匹配记录

    您可以检查:

  • 主表(外键指向主键的表)中的数据是否也被删除或截断。如果是这样,您需要在孩子记录之前将它们带回来
  • 主表中的数据是否不再相同,与旧数据的一致性是否丢失。(如果正在处理生产数据库,则数据可能正在更改)。如果是这样,您需要将丢失的记录带回主表