【发布时间】:2010-11-16 05:46:29
【问题描述】:
我有两个 MySQL 表 A 和 B。表A 有一个成员ref,它是对B.id 的ForeignKey 引用。这使得 B 和 A 之间存在 1:many 关联。
这已经投入生产几周了,但我现在正在向我的代码中添加更多功能,并且意识到我的原始映射错误。我需要B 和A 之间的多:1 关系。也就是说,B.ref 应该指向A.id,而不是相反。直到现在这还不是问题,因为到目前为止都是 1:1 映射。如何将我的数据迁移到新架构?
我猜:
-
ALTER TABLE B ADD COLUMN ref INTEGER CONSTRAINT FOREIGN KEY (A.id)-- 先添加列 - 运行与“
for row in A: row.ref.ref = row”等效的 SQL ALTER TABLE A DROP COLUMN ref
尝试在 SQLAlchemy 中执行此操作失败并出现循环引用错误。我需要在 SQL 中执行此操作,但不熟悉必要的 SELECT+UPDATE 语法。帮忙?
【问题讨论】:
标签: sql foreign-key-relationship