将值插入两个表

时间:2012-01-13 07:34:05

标签: java sql

当我插入第一个插入成功时,我有两个表table1table2,而在第二个插入时有一个例外。然后我想删除第一个表的值。怎么样 在JAVA和SQL中完成。

提前致谢;

4 个答案:

答案 0 :(得分:2)

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

阅读JDBC tutorial about transactions

答案 1 :(得分:1)

你需要的是将两个insert语句放在Database transaction中,以便两个语句成功完成或者如果其中一个语句失败则回滚,具体取决于你使用的数据库引擎,对于mysql,请参阅{{ 3}},它可能类似于:

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

对于SQL Server,请参阅this

答案 2 :(得分:0)

虽然您未提交更改,但您始终可以执行回滚以取消您的交易。因此,如果您使用JAVA发送查询(我不知道您的代码)并且您获得了Exception,那么您可以将回滚发送到数据库。

答案 3 :(得分:0)

取决于您使用的数据库禁用自动提交。然后执行插入值,如果第二个失败则执行回滚。如果您需要更具体的帮助,则必须提供其他信息。