1

许多乐观并发示例通过使用数据库时间戳或标志来引用更新。

但是,我想处理 INSERTS 的乐观并发

为了说明这里是一个假的场景:

多个用户可以同时插入一个日记帐分录,但每个日期只允许一个日记帐分录。

由于多个用户可以创建日记帐分录,因此没有任何并发​​控制,我最终可以在同一日期创建多个日记帐分录。

在不使用数据库(即数据库唯一键约束)的情况下,如何防止在应用层发生这种情况

4

2 回答 2

4

无论您是否定义明确的唯一键约束,这正是您所要求的。

您可以在 SQL 代码中编写一个 IF 块来检查指定日期的日记帐分录是否存在。

但是明确的唯一键约束将提供更好的性能。

于 2008-10-14T18:09:51.527 回答
0

您可以编写一个“插入时”触发器来检查表的内容,然后在不满足您的条件时丢弃插入。这适用于大多数 RDBMS。

于 2008-10-14T18:09:21.683 回答