我正在寻找合并2个MySQL表与重叠主键值(users_id)的最佳方法
两个表都有不同的结构,
MEMEBR(member_id,memeber_email,member_dob,....)目前下一个自动递增值27014
USER(users_id,email,name,dob,.....)目前是Next Auto Increment Value 23734
这两个表都属于不同的应用程序,并且有许多带有引用主键值的日志/事务表(Member_id和users_id)。
我已经编写了查询来从USER和Insert Into MEMBER中选择数据,但主要问题是重叠IDS。 起初我认为在MEMBER中的最后一条记录之后附加USERS的所有记录,但这会产生新的IDS,并导致USER应用程序参考表中的不一致。
第二,我想在MEMBER中存储一个额外的字段Users_id来跟踪USER应用程序中的相关记录。
现在在此额外字段中为MEMBER应用程序用户存储的内容。由于现在合并的用户将无缝使用这两个应用程序,因此它需要此字段中的值,当然与member_id相同。
现在, 会员(memeber_id,Users_id,电子邮件,....) 1,1,一@ b.com 2,2,B @ b.com 。 。 。 27014,27014,z @ b.com此处结束会员记录 27015,1,aa @ bb.com来自用户表的第一条记录
现在我在这里保持一致。
user_id 1同时存在于member_id 1(1,1,a @ b.com)和member_id 27015(27015,1,aa @ bb.com)
为了解决这个问题,我想到的另一点是在所有现有成员应用程序和未来用户的users_id字段中输入0,这意味着只需从USER应用程序中保存现有的users_id。
如果您理解并面对同样的问题,或者可以像我一样思考,请提供帮助。
可能有人询问问题或真实问题,所以。
问题: 正如上面的问题所解释的,当合并来自2个不同应用程序的2个用户表时,处理重叠id的最佳方法是什么,该用户将无缝访问这两个应用程序。
任何帮助表示感谢。
如果需要进一步的信息,请告诉我。
答案 0 :(得分:1)
合并一个用户记录后,它的当前ID和新ID。然后在所有表中更新这些ID:
UPDATE table1 set UserID=:newID where UserID=:oldID
UPDATE table2 set UserID=:newID where UserID=:oldID
etc.
重复。
答案 1 :(得分:0)
我会做以下事情: