如何在MySQL表中使用迁移查询来替换记录?

时间:2017-03-21 09:55:03

标签: mysql replace migration

我有一些现有的mysql表。

表1 - lead_records

    leadid  leadnumber 
     1      98264*****
     2      88952*****
     3      99625*****

等等。

表2 - 辅导员

    cid  counselorid   leadnumber
    1     101           98264*****
    2     102           88952*****
    3     101           99625*****

等等。

现在我想改变一些记录结构。我想使用像 -

这样的潜水员来代替头号
    cid  counselorid    leadid
    1     101           1
    2     102           2
    3     101           3

该表中已存储了数千条记录?如何将leadnumber替换为lead id。

1 个答案:

答案 0 :(得分:0)

使用索引添加辅导员列:

ALTER TABLE `counsellors` ADD `leadid` INT NOT NULL, ADD INDEX (`leadid`);

根据头号设置leadid:

UPDATE counsellors c SET c.leadid = (SELECT l.leadid FROM lead_records l WHERE l.leadnumber = c.leadnumber LIMIT 1);

(可选)如果一切正常,请删除列:

ALTER TABLE `counsellors` DROP `leadnumber`;