【问题标题】:Issue in Import database .sql file to WAMP server (MySQL Version 5.5.24)将数据库 .sql 文件导入 WAMP 服务器中的问题(MySQL 版本 5.5.24)
【发布时间】:2015-11-03 14:12:59
【问题描述】:

我在 WAMP 服务器中备份了我的数据库(MySQL 版本 5.0.10

此数据库在多个表之间使用 PK-FK 关系。

现在当我在我的新 wamp 服务器 phpmyadmin 中导入这个 backup.sql 文件时(即 5.0.10 => 5.5.24);它显示依赖错误; Unknown column 'min_investment_size' in 'field list' 第一次转储表 company 的数据时。

我知道这里 company 表与 investment 表有一个 FK 关系;那么在转储company 表之前如何转储它的前任表依赖于哪个公司?

许多其他表和过程也有相同的依赖问题。例如。用户需要company.id;所以即使在倾倒用户表之前,公司表也必须倾倒。我想在这里分享一些截图:

那么如何摆脱这种情况。

注意:我已经尝试过迁移

  1. RedGate MySQL 比较器。
  2. MySQL 工作台

但是迁移/同步过程中的错误和上面一样。

【问题讨论】:

  • 简单的答案是在还原中turn off Foreign Key Checking。您可以通过在创建转储时选中 Export Disable foreign key checks 上的一个选项来执行此操作,以用于恢复到新版本的 MySQL。
  • 还是有错误:procedure_name 已经存在

标签: mysql database phpmyadmin wamp


【解决方案1】:

1)db中的表结构没有列

2) 存储的过程已经存在,并且您的脚本不会在它之前执行 if 以仅在它不存在时创建它

IF NOT EXISTS(SELECT 1 FROM mysql.proc p WHERE db = 'db_name' AND name = 'stored_proc_name') THEN
   {your stored proc block here} 
END IF;

如果 spname 上存在则删除,然后创建它

【讨论】:

  • 我一次完成了整个备份。并尝试导入该 .sql 文件。没有单独的导入
  • 我不在那里。这就是它所报告的。看表结构。在该部分之前查看 proc 存在。这对我来说似乎很直接。东西已经存在(sp),表结构不同
  • 在导入数据库之前什么都没有;只有新鲜的空数据库
  • 然后创建一个迷你脚本,其中包含第一次失败之前的所有内容。运行。在运行失败的东西之前看看你有什么。当我运行脚本时,我不认为,哦,这肯定会起作用。我预计它会失败
  • 如果您想在 google 驱动器或其他地方发布您的脚本,我们很乐意为您检查一下。祝你好运
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-28
  • 1970-01-01
  • 2016-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多