【发布时间】:2011-11-24 02:15:30
【问题描述】:
我有一个表,它有一个 id(具有自动增量的主键)、uid(例如,引用用户 ID 的键)和其他一些对我来说问题无关紧要。
我想为每个 uid 条目在 id 上创建不同的自动增量键。
所以,我将添加一个 uid 10 的条目,并且该条目的 id 字段将具有 1,因为没有uid 中值为 10 的先前条目。我将添加一个 uid 4 的新条目,它的 id 将是 3 因为我已经输入了两个 uid 4。
...非常明显的解释,但我试图尽可能清晰地解释这个想法......清楚地展示这个想法。
- 什么 SQL 引擎可以原生提供这样的功能? (非基于 Microsoft/Oracle)
- 如果没有,我怎样才能最好地复制它?可能是触发器?
- 此功能是否有更合适的名称?
- 如果您知道提供这种功能的非 SQL 数据库引擎,请随便命名,我很好奇。
谢谢。
【问题讨论】:
-
你真正想要达到什么目的?将这么多“逻辑”放入主键和外键听起来确实是个坏主意。
-
@a_horse_with_no_name 例如,我想存储用户所做的更改或任何操作,所有用户都带有一个自动增量字段,以按数字顺序排列他们所做的事情。为此,我需要每个用户使用不同的表,这显然是一个可怕的想法。
-
听起来您应该将更改与时间戳一起存储,然后在检索信息时按该时间戳排序,以便按照完成的顺序获取它们。
-
听起来可以管理,但是,使用小整数不是更有效吗?
标签: sql database primary-key auto-increment