从表a复制某些列并插入表b?

时间:2013-03-14 19:00:11

标签: php mysql

请有人帮助我一直在处理这个问题几个小时。我正在尝试从我的表ptb_registrations中复制某些列,并将它们作为新行插入到ptb_users中。

我的ptb_registrations表看起来像这样:

id  |   username  |  password   | firstname   |  lastname   |   email 

1        dave        password       james          tanner       email@email.com
2        jonx10      gundam00       eric           davies       something@email.com
3        33csgge     henry10        daniel         gilmart      mail@inbox.com

从这些列中我只想插入id,firstname,lastname,email和password not username。

所以我的ptb_user表看起来像这样:

   id   | user_id  |  password   | firstname   |  lastname   |   email 

    1        1        password       james          tanner       email@email.com
    2        2        gundam00       eric           davies       something@email.com
    3        3        henry10        daniel         gilmart      mail@inbox.com

id是一个自动增量值,我希望user_id在插入数据时具有与auto_incremented id列相同的值(如果可能,那么id为1 - user_id也将为1)

到目前为止,我已经尝试了许多不同的方法来从ptb_registrations和ptb_users中插入列,但没有任何方法可以帮助我。

有人可以告诉我我哪里出错了,谢谢。

 // Make a safe query
    $query ="insert into ptb_users(id, first_name)
    select ptb_registrations.id, ptb_registrations.firstname
    from ptb_registrations, temp
    where ptb_users.id=temp.id;
    ";

    mysql_query($query)or die('Could not update members: ' . mysql_error());

1 个答案:

答案 0 :(得分:0)

无法保证您的新AUTO_INCREMENT将与之前的用户ID相匹配...如果序列中断,会发生什么?您最好的选择是在插入记录后重新分配新表的ID。

您的查询应该是这样的:

INSERT INTO ptb_user (user_id, password, firstname, lastname, email)
SELECT id, password, firstname, lastname, email
FROM ptb_registrations
ORDER BY id

P.S。我希望您不要将密码保存在 纯文本 中。