gpt4 book ai didi

python - 为什么 PostgreSQL 在合并实例时不增加 id_sequence 上的 last_value?

转载 作者:行者123 更新时间:2023-11-29 12:48:03 24 4
gpt4 key购买 nike

在上一个问题中,我想知道为什么在第一次将具有 ID 的实例合并到数据库(注入(inject)夹具数据)时,我从 SA 收到完整性错误。

但是,我学会了通过调用我正在注入(inject)的最高索引来解决这个问题:

select setval('my_items_id_seq', {id});

但是,这并没有解决根本问题,这正是我现在正在努力解决的问题。为什么 merge 在插入新行时不对序列调用 nextval()?

最佳答案

如果您的对象已经设置了 PK 属性,那么 ID 序列将不会被使用,因此不会递增,因为数据库没有理由执行隐式 insert into mytable (id, ...)值((从 mytable_id_seq 中选择 nextval),...)

您确定您需要对您的 session 进行合并而不是添加吗?如果您真的要插入,我认为这更像是一个 add 操作。如果您只是简单地重用一个仍在内存中的对象,但较早添加并且现在可能已在数据库中更改,则 merge 是合适的。

关于python - 为什么 PostgreSQL 在合并实例时不增加 id_sequence 上的 last_value?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7044980/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com