如果我在 MySQL 中有一个通过外键关联的 Parent 和 Child 表,是否可以使用 SQL 语句以原子方式将 Parent 中的某些行和 Child 中的相关行移动到归档表(例如 Parent_Archive 和 Child_Archive)中?
问问题
761 次
1 回答
1
使用事务——它们的全部目的是使一系列 SQL 语句具有原子性。
例如(不是很优化 - 可以使用临时表改进):
START TRANSACTION;
INSERT Child_Archive
SELECT DISTINCT
Child.* FROM Child, Parent
WHERE Child.FK = Parent.PK
AND Parent.something=11;
DELETE Child WHERE FK IN (
SELECT DISTINCT PK FROM Parent WHERE Parent.something=11);
INSERT Parent_Archive
SELECT DISTINCT * FROM Parent WHERE Parent.something=11;
DELETE Parent WHERE Parent.something=11;
COMMIT;
于 2010-06-10T23:29:26.843 回答