插入中的显式PK声明:我可以通过更新这些记录来推送自动增量值吗?
这个问题完全说明了一切。我有明确声明ID(PK)的种子数据,因此Postgres不会意识到我已经有例如ID 1和2。我可以更新这些条目吗? name属性,以使Postgres认识到ID 1和2已经在表中并使其从3开始?如果没有,还有什么其他好的方法,但是只能通过.net核心C#代码并采用代码优先方法进行迁移?
更新
经过尝试后,我决定退出种子中的显式id声明,毕竟更改ID并以其他方式标识记录比通过id标识要容易得多,这使得Postgres可以立即正常工作。
答案 0 :(得分:1)
虽然将值强制为按序列自动生成的键是有效的,但这会产生比解决的问题更多的问题。
解决方案1,让数据库告诉您所使用的ID:
"16, 100, 16, 16"
这样,您就知道使用了什么ID。
解决方案2(与您想要的更接近,但是我不建议这样做),强制序列采用新值:
new Margin(16, 100, 16, 16)
答案 1 :(得分:1)
您的问题不是很清楚;我假设您要提高自动递增列的当前值,以避免与已经插入的值发生冲突。
为此,找出支持autoincrement列的顺序。 psql
命令\d
将很有帮助。
然后使用类似的方式使当前值前进
ALTER SEQUENCE seq_name RESTART 123456;