我有一些名为 OrderId 的列表。我刚刚完成了重构,我想摆脱 Order 表,我有一个名为 Transaction 的新表。我希望所有包含 OrderId 列的表格现在都有 TransactionId 列
这是完整的。我现在需要填充 transactionId 列。我今天在 orderId 和 transactionId 之间进行了映射,所以我希望看到最快的方式来填充新的 transactionId 列(我应该这样做)这通过代码,通过SQL查询等?? ??)
所以我在订单表中有transationId列,所以我可以进行连接。
我想要一个类似这样的查询(伪SQL)
update childTable CT
set transactionId = MapFromOrderId(CT.OrderId)
有什么建议吗?
答案 0 :(得分:3)
我会在SQL代码中执行此操作:
UPDATE MT
SET
transaction_id = MAP.transaction_id
FROM
My_Table MT
INNER JOIN My_Map MAP ON
MAP.order_id = MT.order_id
然后检查以确保每一行都已映射:
SELECT
*
FROM
My_Table
WHERE
transaction_id IS NULL
答案 1 :(得分:1)
这个过程通常是:
我肯定会在脚本中执行此操作,因此在开发和QA测试后很容易移植到prod。
在prod上,您需要在数据库处于单用户模式时执行此操作,以防止在进程转换时添加新订单。