postgresql - postgreSQL:主键不是从 1 开始
问题描述
我使用查询在 DB 表中创建了一个名为 t_id 的主键 t_id SERIAL PRIMARY KEY
。第一次,它从 1 开始很好。然后我删除了所有数据,从那时起,它从 2 开始,即使我将它设置为 1。
这是我在 seq - definition on pgAdmin4 上所做的截图:
任何人都知道问题出在哪里?
非常感谢!!
解决方案
当前值为 1,因此将提供的下一个值为 2。这是预期的。
该文档对这个主题很有帮助。
请记住,序列将始终为您提供以前未使用过的值。所以如果你插入 10 行,然后删除它们,下一个序列值仍然是 11(最后提供的值 + 1)
要重置序列,以便下次调用它时返回 1,您可以
SELECT setval('my_sequence_name', 1, false);
推荐阅读
- php - PHP重定向,在url中插入常量后缀
- firebase - 如何在 mojify 应用 Firebase Cloud Function 实时数据库后触发通知
- selenium-webdriver - Appium 无法识别 My Mobile 原生应用特定页面上的任何元素
- three.js - Three.js底色的纹理映射方式
- python - 解析字符串以按大写字母、连字符和下划线分隔单词
- jquery - [SPLoaderError.loadComponentError]:找不到模块“jquery”
- signtool - Signtool 错误:未找到符合所有给定条件的证书
- r - 高效的多元正态推理
- c++ - C++ ifstream::read 混淆
- vba - 传递对自定义类与内置对象的引用时非常奇怪的错误