【问题标题】:Align two mysql tables对齐两个mysql表
【发布时间】:2015-11-11 12:17:51
【问题描述】:

我有两个数据库。 WordpressDB 和 JoomlaDB

WordpressDB 有表 db1_users JoomlaDB 有表 db2_users

这些表具有相同的字段名称

id  | email | Login | Password

通用数据库是 WordpressDB。 所以我需要 JoomlaDB 中的所有 id 与 WordpressDB 中的 id 相同,其中 email 字段相同。

那么如何做到这一点,大约有 10.000 个条目?

【问题讨论】:

  • 这样做会彻底破坏 Joomla。身份证不在那里供你捣乱。它是所有其他表中使用的键。不要尝试通过 id 加入,而是尝试通过电子邮件加入。

标签: php mysql


【解决方案1】:

我不知道这是否正确,但如果您正在寻找使用表 wordpress 中的数据 ID 更新表 joomla 中的 ID 的查询,我认为您可以使用它:

update WordpressDB.tbl_user1 
set WordpressDB.tbl_user1.ID=(
select JoomlaDB.tbl_user2.ID from JoomlaDB.tbl_user2 
where JoomlaDB.tbl_user2.EMAIL=WordpressDB.tbl_user1.EMAIL
) 

【讨论】:

  • 问题是两个不同的数据库,有不同的用户名和密码
【解决方案2】:

您可以在表db2_users 中创建一个列wp_user_id,并创建一个迁移脚本以将用户ID 从WordpressDB db1_users 映射到存在相同邮件的JoomlaDB。

通过这种方式,您不会影响 Joomla 处理用户 ID 的方式,并且可以满足您的需求。

请注意,您可能会成为并发更新的受害者,因为两个模块可能会同时更新同一行,在这种情况下,您在 JoomlaDB 上更新用户行时可能需要locking mechanism

【讨论】:

  • 那么如何查看迁移脚本?
  • 只要两个数据库在同一台服务器上,您就需要在两个数据库之间进行 UPDATE 查询,在通过电子邮件连接两个表时,您可以根据电子邮件匹配在 JoomlaDb 中设置 wp_user_id ...您可以从link 中受益,了解有关使用连接更新的更多信息..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-29
  • 2017-09-24
相关资源
最近更新 更多