我正在规范化现有数据库。我目前在表 1 中有两列,域和容器,具有有限的不同组合(目前这两者的约 30 种组合来自约 1000 条记录)。我已经构建了一个包含所有组合的新 Table2,并在安装新记录时自动生成主键 (container_id)。我在 Table1 中添加了一个 container_id 列,并希望根据 Table1.container 列填写值。
此时,表 2 中的所有容器名称都是不同的,但将来可能会发生变化,因此需要一个唯一编号作为 PK。
IE
UPDATE Table1
SET container_id = (SELECT Table2.container_id
FROM Table2
WHERE Table2.container = Table1.container)
WHERE EXISTS
( SELECT Table2.container_id
FROM Table2
WHERE Table2.container = Table1.container)
这个查询返回error 1242: subquery returns more than one row.
我是在吠叫完全错误的树吗?表 2 应该有零个重复值。