当我想要将相关数据插入到不同的表中,并且其中一个插入失败时,我该怎么办。所以只有一部分重要的相关数据被插入到其中一个表中。那么,我显然不希望数据分割留在表中,因为它本身并不有用。实现这种行为的最佳方法和技术是什么?
发布于 2011-12-28 01:30:06
您能做的最好的事情之一就是将自动提交设置为0。在那里,您可以将其嵌套在事务中。通过这种方式,您可以提供一个条件,即如果表没有完全更新,则回滚,并且不会将其保存到磁盘中。
START TRANSACTION;
SELECT @A:=SUM(salary) FROM table1 WHERE type=1;
UPDATE table2 SET summary=@A WHERE type=1;
COMMIT;这是我从MYSQL网站上得到的:http://dev.mysql.com/doc/refman/5.0/en/commit.html
发布于 2011-12-28 01:30:19
这就是事务的用途。
一个事务包装了一堆事务。在事务结束时,要么提交(所有更改都命中磁盘),要么回滚(没有一个)
使用BEGIN语句启动事务,使用COMMIT提交事务,然后使用ROLLBACK回滚事务
https://stackoverflow.com/questions/8647390
复制相似问题