gpt4 book ai didi

mysql - 拆分表并正确重新插入所有数据

转载 作者:行者123 更新时间:2023-11-29 09:39:38 25 4
gpt4 key购买 nike

问题

考虑表“ProductsStored”

        |           ProductsStored               |
------------------------------------------
| id | product | type | description |
------------------------------------------
| 1 | AX | Cleaning | bla bla bla |
| 2 | AB | Food | bla bla bla |
| 3 | AJ | Cleaning | bla bla bla |
| 4 | KR | Food | bla bla bla |

我想将此表分成两个:

|  ProductsType  |
-------------------
| id | type |
------------------
| 1 | Cleaning |
| 2 | Food |


| Products |
----------------------------------------
| id | product | idType | description |
----------------------------------------
| 1 | AX | 1 | bla bla bla |
| 2 | AB | 2 | bla bla bla |
| 3 | AJ | 1 | bla bla bla |
| 4 | KR | 2 | bla bla bla |

我有几个带有此类表的模式。必须在新的两个表中插入数据并保持 ID 完整。

我想出了以下代码,但我缺少一部分:

插入产品类型

INSERT INTO `ProductsType` (id, type) SELECT DISTINCT `type` FROM `ProductsStored`

插入产品并与其“ProductsType”中的类型建立关系

INSERT INTO `Products` (id, product, description, idType) SELECT id,product,description ...(how do I get the idType?) 

我不明白如何正确获取 idType。另外,这种方法是正确的方法吗?

引用文献

How split data from table and insert to new relation?

这个主题几乎回答了我的问题,但它使用了@rownr,我不明白他为什么这样做。而且他似乎没有使用正确的 PK。

最佳答案

好吧,你就快到了。只需要进行如下一些调整即可。

插入产品类型

将 id 设置为自动递增并使用以下查询。

INSERT INTO `ProductsType` (type) SELECT DISTINCT `type` FROM `ProductsStored`

插入产品并与其“ProductsType”中的类型建立关系

INSERT INTO `Products` (id, product, idType, description) SELECT ps.id, ps.product, (SELECT pt.id from ProductsType pt where pt.type=ps.type) as type, ps.description FROM ProductsStored ps

应该可以了。干杯。

关于mysql - 拆分表并正确重新插入所有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56890565/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com