1

现在我有一个带有表的 mysql 数据库,userphone(id, phone, type,userid)我想将它分成两个表,phone(id,phone,type)并且user_phone(id,user_id,phone_id).

我这样做是因为我将拥有其他也涉及电话号码的东西,它们应该全部存储在一个表中。(例如,我还将添加一个company_phone(id,company_id,phone_id)加入表来加入带有电话号码的公司)。

有什么好的,有效的方法吗?我添加了新表,但不确定填充它们的最佳方法。

我可以将所有电话添加userphonephone表格中,例如

INSERT INTO phone(phone,type) SELECT phone,type FROM userphone;

但这不会user_phone为每部手机在新表中添加一个条目。

有没有办法同时处理INSERT INTO两个不同的表?(根据研究,我知道没有,但我不知道还有什么方法可以做到这一点......)

提前致谢!

4

2 回答 2

2
  1. 创建表 user_phone 为

    insert into phone(phone,type,user_id)
    select phone,type,user_id from userphone
    
  2. 将您的表 user_phone 创建为

    insert into user_phone (user_id,phone_id)
    select user_id,id from phone
    
  3. alter table phone drop column user_id

于 2012-01-26T18:22:30.053 回答
0

第一的:

INSERT INTO phone(phone,type) SELECT phone, type FROM userphone;

第二:

select u.USER_ID, p.phone_ID from userPhone u INNER JOIN Phone p ON u.phone = p.phone and u.type = p.type

于 2012-01-26T18:16:50.170 回答