mysql - 调用在select的每个值上插入另一个表

时间:2014-08-27 01:42:51

标签: mysql sql database data-migration

我目前正在将旧数据库架构中的数据迁移到新数据库架构中。

我的旧数据库上有一个名为Product的表,在我的新数据库模式上,我仍然有Product表和b_id的新列,以及另一个表{{1 }}

在迁移期间,我需要为表B中的每个产品插入一个条目,并更新B表以设置新创建的Product在b上输入此产品。我怎么能做到这一点?

要传输产品表的数据,我有:

b_id

我想要循环到INSERT INTO newSchema.Product SELECT id, prodName FROM oldSchema.Product 和每个产品,请致电oldSchema.ProductINSERT INTO B,但不知道如何将其放入代码中。< / p>

任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

B表同样如此......

INSERT INTO newschema.B (product_id)
SELECT      id
FROM        oldschema.product

<强>被修改

CREATE TABLE newschema.b (
         id INT NOT NULL AUTO_INCREMENT,
         product_id INT,
         PRIMARY KEY (id)
         );

CREATE TABLE newschema.product (
         id INT NOT NULL AUTO_INCREMENT,
         name VARCHAR(35) NOT NULL,
         b_id INT,
         PRIMARY KEY (id),
         FOREIGN KEY (b_id) REFERENCES b(id)
         );

INSERT INTO newschema.b (product_id)
SELECT      product_id
FROM        oldschema.product ;

INSERT INTO newschema.product (id, name, b_id)
SELECT      OP.id,
            OP.name,
            NB.id
FROM        oldschema.product AS OP,
            newschema.b AS NB
WHERE       NB.product_id = OP.id ;