使用insert和update MYSQL将one-many转换为one-one

时间:2016-06-19 19:42:39

标签: mysql

我正在尝试编写一个脚本,它将修改从一个到一个的关系。一对多关系是一个带有主键的电话号码,可以多次由不同的表引用。

例如,假设我有一个本科生表和一个毕业生表,两个条目具有相同的数字。现在,他们将拥有相同的外键用于电话号码表。

我希望每当这些学生使用相同的外键ID时,在电话号码表中插入一个新行(具有相同的数据),并更新其中一个学生行以指向新插入的电话号码行

我有下面显示的插入和更新语句,我基本上需要找到一种方法将两者结合起来。

INSERT INTO phone_number (id, phone_number)
SELECT null, pn.number
FROM phone_number pn
    WHERE pn.id in 
    (
        SELECT underp.phone_id
        FROM 
        (
        undergraduate_phone underp
            INNER JOIN graduate_phone gradp ON underp.phone_id = gradp.phone_id
    )
        )

UPDATE graduate_phone
    SET graduate_phone.phone_id = LAST_INSERT_ID()

我现在显然无法工作,因为insert语句只复制了本地和grads使用的phone_number中的所有行,而update语句只获取最后插入的id。想法?

0 个答案:

没有答案