postgresql - 约束使插入失败,但主键仍然递增
问题描述
我有一个表,它有一个基于序列的主键START WITH 1 INCREMENT BY 1
。
主键效果很好,可以根据需要递增。
但是我有另一个字段是唯一的。当我尝试插入无法通过 UNIQUE 检查的新行时,主键仍会更新。我希望这不会更新主键,因为 INSERT 失败。
为了测试这一点,我插入了两行,主键分别是 1 和 2。然后我尝试再次插入第二行的数据。由于唯一约束,它失败了。然后我插入了另一行具有唯一值的行,主键从 2 跳到 4,跳过了在唯一约束没有失败的情况下将使用的三个。
这是 Postgres 的预期行为吗?
解决方案
推荐阅读
- swift - SwiftUI - 在 macOS 应用中扫描二维码
- wcf - 为什么在代码中更改 wcf 端点地址似乎不起作用?
- count - 如果 A 列具有相同的数字,则计算列数
- svn - 将 svn 存储库作为“子存储库”移动到另一个存储库
- c - 如何理解这一段以及表达了什么信息
- c# - 使用组合框在datagridview中排序excel工作表列
- node.js - 即使 IP 地址被列入白名单,也无法连接到 MongoDB Atlas 集群中的任何服务器
- typescript - Quasar:如何在 axios.ts 中调用函数?
- c++ - 基于unique_ptr参数指针类型的重载函数
- java - WebExpressionVoter 不支持 ROLE_ANONYMOUS