2011-05-10 118 views
1

我有一个表格,其中我已经开始在10000的自动增量ID,这样我有10000个值保留手动插入管理员的值。然而,当插入到MyTable(ID,名称,值)VALUES(500,“测试”,“测试”)时,我做了一个选择,它忽略了我给我的ID并推入下一个10,000范围。任何关于修复这个问题的建议或可能是错误的?上面的代码当然是伪代码,但如果它没有意义,我可以给出一个真实的代码示例。插入一个自动增量字段

回答

7

好的,在你得到你的问题的答案之前,我必须警告你关于非常你尝试在那里做的坏习惯。不要误会我的意思,许多人都试图做你正在做的事情,而这根本不是事情的方式。

您的auto_incremented ID是主键。主键用于唯一标识表中的一行。而已。除此之外,它没有其他特殊的含义。

那对你来说意味着什么?这意味着你的想法,你会为管理员“保留”1-10k是不好的。为什么它不好?因为你篡改了主键。你永远不应该决定主键的价值应该是什么,这是数据库的工作有很多原因(例如一致性)。 另一件事,为什么它不好是你有限的人只有10K可能的条目。另一方面,你将如何计算管理员的下一个条目是什么?如果输入了1,2,3,4,然后删除ID = 3的条目,该怎么办?然后会发生什么?顺序值是什么? 3或5?

话虽如此,你应该重新考虑你的策略。为什么不添加一个字段“isAdmin”,它会告诉你管理员是否发布了一些内容?

+0

你确实说过你最终会回答这个问题,而你从未这么做过:-P – ilasno 2013-06-24 18:37:51