(MySQL)我正在尝试将“订阅”表迁移到 3 个新表中:“产品”、“订阅”、“实际”,其中“实际”是实际产品的名称,例如时事通讯。订阅具有对产品的 FK 引用,而实际具有对订阅的 FK 引用。
我知道该INSERT INTO SELECT
语句可以将数据可能从多个表复制到一个;对于我的情况,是否有相反的声明,一对多的表?
(MySQL)我正在尝试将“订阅”表迁移到 3 个新表中:“产品”、“订阅”、“实际”,其中“实际”是实际产品的名称,例如时事通讯。订阅具有对产品的 FK 引用,而实际具有对订阅的 FK 引用。
我知道该INSERT INTO SELECT
语句可以将数据可能从多个表复制到一个;对于我的情况,是否有相反的声明,一对多的表?
我认为您可以在选择语句中使用三个单独的插入。首先转换产品表,然后转换订阅,您可以使用嵌入式选择在产品表中查找 id:
insert into subscription (some_column, FK_id,...)
select something, (select id from product where <your where clause>),...
最后使用嵌入式选择转换实际表以从订阅表中获取 id。
我不知道有一个 SQL 语句会做你想做的事。只需一个接一个地执行几个 INSERT INTO SELECTs。无论如何,一次做一个可能会更快。