0

是否依赖 oracleROLLBACK命令导入数据、验证数据然后执行ROLLBACK

我已经为我们的 ERP 构建了一个数据导入程序,查看代码,他们将数据插入到真实的表中,进行验证,如果验证失败,他们执行回滚。我总是在插入之前验证数据,但只是好奇这是否是一种可以接受的方法?

4

1 回答 1

0

这里有几件事要记住-

  • 约束使我们能够保持数据完整性。这意味着约束允许我们在数据库级别本身执行业务规则(或至少是其中最基本的规则)。

  • Acommit或 arollback是一种保留或撤消事务中所做更改的方法。如果您commit在一系列成功运行的 DML 语句之后发出 a,则更改将被保留。该rollback声明将撤消更改。

  • 如果在一系列 DML 语句中,如果其中一个语句失败,则该特定语句的效果将回滚。例如,如果一条UPDATE语句更新了 10 行,其中一个违反了重要约束,则这 10 行中的任何一行都不会更新。然而,它前面的语句的效果并没有隐含地回滚。

  • 为了保持数据完整性并根据业务要求保留数据,ROLLBACK如果任何 DML 失败,您必须发出手动声明。

  • 您在程序中看到的是相同的做法。ROLLBACK如果您仔细查看代码,它不会在事务成功后发出,而是在 DML 失败后发出。这确实是回滚失败并仅在一切正常时才提交的好习惯。

  • 对数据的前端检查确实是任何应用程序的重要组成部分。这可确保输入的数据符合业务角色。即使在这种情况下,也必须应用约束以在数据库级别执行检查。这在某些菜鸟对前端进行更改并尝试输入无效数据时特别有用。当有人绕过应用程序并手动输入数据时,这也很有帮助。因此,始终需要在数据库级别上施加约束。

于 2013-10-18T03:53:21.827 回答