当我插入第一个插入成功时,我有两个表table1
和table2
,而在第二个插入时有一个例外。然后我想删除第一个表的值。怎么样
在JAVA和SQL中完成。
提前致谢;
答案 0 :(得分:2)
这是由数据库是事务性的事实处理的。禁用JDBC连接上的自动提交,在成功执行两个语句后提交,或者如果其中任何一个语句失败则回滚,并且数据库将回滚(取消)两个语句的插入。
答案 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)
取决于您使用的数据库禁用自动提交。然后执行插入值,如果第二个失败则执行回滚。如果您需要更具体的帮助,则必须提供其他信息。