我正在尝试将一些数据从旧数据库迁移到架构略有不同的新数据库,而我的 SQL 并不是非常强大。
旧模式:有一个我们称之为“Person”的表,其中一个字段可以有 3 个标志的排列集。Person 表有一个指向另一个表的外键,我们称之为“Flags”。他们的标志表在字符串中包含每个标志组合的行:
1 - Yes No No
2 - Yes Yes No
3 - Yes No Yes
4 - Yes Yes Yes
5 - No Yes No
6 - No Yes Yes
7 - No No Yes
新架构不需要此表(谢天谢地)。这些标志只是“Person”表中的字段,现在作为 BIT 字段。
我想做的是这样的:
UPDATE database2.Person SET (flag1, flag2, flag3) VALUES (true, false false) WHERE database1.Person.flag_id = 1;
然后我可以运行 7 个不同的查询来相应地更改 ID 和值。当然,问题在于上面的 SQL 不正确。我想我需要某种 JOIN ...或 where 子句中的子选择或其他什么?
对前进的最佳方式感到困惑。我在这里的分离想法是,这不需要压缩到单个查询中,或者特别优雅。我希望运行一次此查询并完成它。