gpt4 book ai didi

mysql - canhan数据库: How to move data from non details-table to details-table?

转载 作者:搜寻专家 更新时间:2023-10-30 22:10:55 26 4
gpt4 key购买 nike

在过去,我有一个包含这样一个表的数据库:

ProductID | ProductName | InStockWareHouse1 | InstockWareHouse2
---------------------------------------------------------------
1 Name1 5 10
2 Name2 10 20

但是现在,为了让普通用户能够自己创建更多的 WareHouse,我必须更改为 details-table。像这样:

产品表:

ProductID | ProductName
-----------------------
1 Name1
2 Name2
3 Name3

仓库表:

WareHouseID | WareHouseName
---------------------------
1 WareHouse1
2 WareHouse2
3 WareHouse3

WareHouseDetails 表:

ProductID | WareHouseID | InStock
---------------------------------
1 2 5
2 2 10
2 3 10

将数据从旧的 Product 表移动到新的 Product 表并不难,但是我花了一个小时仍然没有想出将数据从旧表移动到新表的解决方案。有什么建议吗?我可以接受解决方案是使用查询还是自己编写一个程序来读取所有数据并写回服务器,只要我不必手动重新输入所有数据即可。

最佳答案

假设您的产品 ID 和仓库是自动递增的整数,我会简单地编写一个小脚本来执行此操作,首先将您的产品复制到产品表,然后手动创建您的仓库。最后从旧的产品 ID 表中复制产品。注意我们需要使用 SET IDENTITY_INSERT <table> ON\OFF以便写入自动递增键。

类似于(注意我使用 OldProducts 作为旧产品表的名称)

SET IDENTITY_INSERT Product ON
INSERT INTO Product (ProdcutId, ProductName) SELECT ProductId, ProductName FROM OldProducts
SET IDENTITY_INSERT Product OFF

SET IDENTITY_INSERT Warehouse ON
INSERT INTO Warehouse (WarehouseId, WarehouseName) VALUES (1, 'Warehouse1')
INSERT INTO Warehouse (WarehouseId, WarehouseName) VALUES (2, 'Warehouse2')
SET IDENTITY_INSERT Warehouse OFF

INSERT INTO WarehouseDetails (ProductId, WareHouseId, InStock) SELECT ProductId, 1, InStockWarehouse1 FROM OldProducts
INSERT INTO WarehouseDetails (ProductId, WareHouseId, InStock) SELECT ProductId, 2, InStockWarehouse2 FROM OldProducts
GO

关于mysql - canhan数据库: How to move data from non details-table to details-table?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29505017/

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