如果我想将相关数据插入到不同的表中,并且插入失败,我该怎么办?因此,只有一部分重要的相关数据被插入到其中一个表中。然后我显然不希望数据断裂留在表中,因为它本身没用。实现这种行为的最佳方法和技术是什么?
答案 0 :(得分:2)
您可以做的最好的事情之一是将自动提交设置为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
答案 1 :(得分:0)
这是交易的目的。
事务包装了一堆事务。最后,事务被提交(所有更改都被命中磁盘)或回滚(没有一个是)
您使用BEGIN
语句启动事务,使用COMMIT
提交,然后使用ROLLBACK