【发布时间】:2017-01-02 15:18:20
【问题描述】:
我正在构建一个 Web 应用程序。它在数据库中插入记录。我在将记录插入数据库之前验证记录。如果在我的验证检查和插入之间,另一个应用程序将 db 状态设置为,如果我尝试插入这些我刚刚验证插入的记录,则会发生唯一键违规约束。我怎样才能避免这种问题。我使用的是oracle数据库,我的开发语言是java。
【问题讨论】:
-
你可以使用锁。
-
如果另一条记录插入该行,您希望当前线程对该行做什么?丢弃数据?更新数据?很大程度上取决于此。你可以使用锁,可以使用一个标志来插入行,当你觉得记录不好时清除它,或者如果你觉得它好就插入它。在插入或更新之前让其他线程查看标志。
-
捕获异常并处理