我有一个表格,其中我已经在10000处启动了自动增量ID,因此我有10000个值保留用于从管理员手动插入值。然而,当插入MyTable(ID,名称,值)VALUES(500,“测试”,“测试”)时,我做了一个选择,它忽略了我给它的ID,并推进到下一个10,000范围内。有关修复此问题或可能出错的任何建议?上面的代码当然是伪代码,但如果它没有意义,我可以给出一个真实的代码示例。
答案 0 :(得分:7)
好的,在你得到你的问题的答案之前,我必须警告你关于非常糟糕的做法,你正试图在那里做。不要误会我的意思,许多人都试图做你正在做的事情,而这根本不是事情应该发挥作用的方式。
您的auto_incremented ID是主键。主键用于唯一标识表中的行。而已。除此之外,它没有其他特殊意义。
那对你来说意味着什么?这意味着您将为管理员“预留”1 - 10k的想法很糟糕。为什么不好?因为你正在篡改主键。您永远不应该决定主键的值应该是什么,这是数据库的工作有很多原因(例如一致性)。 另一件事是,为什么它是坏的,你有限制只有10k可能的条目。 另一方面,您将如何计算管理员的下一个条目是什么?如果输入1,2,3,4然后删除ID = 3的条目怎么办?那么会发生什么?你的下一个序列值是多少? 3或5?
话虽如此,你应该重新考虑你的策略。为什么不添加一个字段“isAdmin”来告诉你管理员是否发布了什么内容?