【发布时间】:2014-10-16 08:47:21
【问题描述】:
我们有一个简单的案例,我们有一个包含 emailId 列的表,即唯一......使用 oracle DB
问题#1 多个并发用户可以检查某些电子邮件 ID 是否可用。像 2 个用户一样同时检查可用性:abc@test.com
session1:从 user_table 中选择 emailid; //如果不存在,则允许用户完成其余的过程并插入信息
session2:从 user_table 中选择 emailid;
现在两个会话都将得到此电子邮件 ID (abc@test.com) 可用并且都尝试插入,我知道其中一个会在插入时出错,但我们如何确保只有 1 个用户获得可用性和其他选择后不可用??
问题#2 同样,如果两个会话都插入了相同的值,那么首先会成功,是否有第二个会话更新该行而不是抛出错误的方法。就像我们有另一个时间戳列并且想要第二个会话而不是抛出错误简单地更新时间戳列?
【问题讨论】:
标签: oracle select concurrency insert email-validation