gpt4 book ai didi

django - 模型下一个可用的主键

转载 作者:行者123 更新时间:2023-12-04 09:38:34 27 4
gpt4 key购买 nike

我怎么知道某个模型的下一个免费主键?

最佳答案

即使您可以查询下一个可用的主键值,它也无济于事。除非您锁定该表,否则您无法在其他数据库客户端获取该值以进行插入之前使用该值。

相反,您应该只插入您的行,然后您可以查询在当前 session 期间生成的最新键值。每个支持自动生成主键的数据库都提供了一种方法来检索 session 期间插入的最新键。

“在您的 session 期间”部分很重要,因为它可以保护您的 session 免受其他客户端同时执行的任何插入操作。它们可以生成键值,您的 session 将继续报告它最近插入的相同值。

@斯图尔特·柴尔兹supposes MySQL 用 MAX(column_name)+1 生成下一个 ID但这是不正确的。假设您插入一行并生成一个 ID 值。但是你回滚这个​​插入,或者随后 DELETE那一行。下次插入时,MySQL 会生成一个全新的 ID 值。因此,无论当前表中存储了哪些行,ID 值都比任何客户端生成的最后一个 ID 值大 1。

同样,如果您插入但不立即提交。在您提交之前,其他一些客户端会执行插入操作。您的 session 和其他客户端的 session 都将生成自己的唯一 ID 值。自动生成的主键在不考虑事务隔离的情况下运行,以确保唯一性。

自动生成的主键值不会重复使用或分配给多个 session ,即使您尚未提交插入、回滚插入或删除行。

关于django - 模型下一个可用的主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/579957/

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