【问题标题】:Import full table into a (nearly) empty new table将完整表导入(几乎)空的新表
【发布时间】:2015-02-27 08:42:34
【问题描述】:

我继承了一个论坛,我现在计划从一个非常古老的家庭编写的 php 版本转移到 phpBB。我想保留论坛结构、帖子和用户,所以保留几张表格就足够了。但是将旧表中的内容引入到 phpBB 表的新结构中有点困难。

起初我尝试使用 phpMyAdmin,复制旧的 users 表,重新排列列,使它们都匹配新的 phpBB3_users 表结构,手动重新创建了我的旧表没有的每个附加列,并将其导出。然后我尝试将它导入到 phpBB 表中。但在大约 10 小时或尝试错误后,我无法解决以下错误:#1062 - Duplicate entry '3' for key 'PRIMARY'

我的PRIMARY是user_id,我查了几十遍,没有重复的条目。

我将表格上传到我的 Google 云端硬盘,以防万一:

- New phpBB3 table

- Old manually corrected table

我做错了什么?我应该不尝试将表导入新表,而是运行不同的查询吗?

如您所知,我对 SQL 几乎一无所知,因此非常感谢您的帮助。

【问题讨论】:

  • user_id 是数字吗?如果不是,请注意 Equal 运算符和尾随空格。它们并不完全相同。见stackoverflow.com/a/28682838/1662973
  • 如果您删除第 3 条记录并尝试再次导入它,您会得到什么错误?自从您第一次开始尝试导入数据以来,您是否对数据库进行了选择 *?您应该这样做以检查一半数据尚未导入,并且在初始导入的中途没有遇到错误。
  • 这可能会导致您的“导入”数据出现重复。
  • 安东尼,它是数字。这是一个 MEDIUMINT 值。对于霍莉,我试过了,我仍然得到同样的错误。我连续尝试了 20 多次,它一直在弹出。我愿意失去一些必须重新注册的用户,但它仍然不起作用。

标签: mysql database phpbb


【解决方案1】:

我强烈建议不要进行仅 SQL 的转换。 phpBB在数据库和相关实体中维护着许多你可能想不到的计算值。

您最安全和直接的选择是使用 PHP API 方法https://wiki.phpbb.com/Category:API。这与用户注册、发帖等时 phpBB 使用的方法相同。

只需创建您自己的 PHP 脚本,从旧表加载数据并使用这些方法,将实体添加到 phpBB,确保核心方法处理所有依赖项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-14
    • 1970-01-01
    • 2017-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多