2012-01-13 110 views
-1

我插入第一个insert成功并在第二个异常时有两个表table1table2。然后我想删除第一个表的值。在JAVA和SQL中如何执行 。将值插入到两个表中

在此先感谢;

+1

什么异常?请显示你的代码!更多细节请! – 2012-01-13 07:36:19

+0

什么数据库?你是通过java代码执行插入吗? – 2012-01-13 07:39:29

回答

0

虽然您没有提交更改,但您始终可以通过回滚来取消您的交易。所以如果你用JAVA发送你的查询(我不知道你的代码),并且你得到一个异常,那么你可以发送一个回滚到数据库。

2

这是由事实数据库是事务处理的。在JDBC连接上禁用自动提交,在两个语句成功执行后提交,或者在任何一个语句失败时回滚,数据库将回滚(取消)插入两个语句。

阅读JDBC tutorial about transactions

0

取决于您使用的数据库禁用自动提交。然后执行插入值,如果第二个失败执行回滚。如果你想得到更具体的帮助,你将不得不提供更多的信息。

1

你需要的是把两个插入语句Database transaction内部,使得无论是两个语句成功或回滚完成,如果他们中的一个失败,这取决于数据库引擎,你正在使用的MySQL看到this,这可能是是这样的:

START TRANSACTION; 
    Insert into table1 values("....") ; 
    Insert into table2 values("...."); 
COMMIT; 

对于SQL Server看到This