0

我有一个数据库服务器。

应用程序逻辑是它将查询是否存在特定行,如果不存在,它将插入一个新行。查询在 Java 和容器管理事务中完成。

因此,如果有 2 个应用程序服务器运行相同的代码,那么两个服务器是否可以检查该行不存在,并且都插入该行。(由于另一个唯一的自动编号主键列,插入将成功)

我们如何确保该数据只有一个且只有一个唯一行?

斯奈特

4

1 回答 1

1

由于另一个唯一的自动编号主键列,插入将成功

大多数 DBMS 提供了一种创建“唯一键”或“唯一索引”的方法,即使它不是主键,它也会强制给定列(或一组列)的唯一性。然后第二次插入将失败,就好像它违反了主键约束一样。

您没有说明您正在使用什么 DBMS,但大多数(全部?)常见的都有这个功能;例如,PostgreSQL、MySQL、SQL Server 和 Oracle 都可以。

于 2013-08-10T05:06:46.030 回答