【问题标题】:JavaDB - autoincrement among several tablesJavaDB - 几个表之间的自动增量
【发布时间】:2014-08-18 19:32:14
【问题描述】:

是否可以在多个表中使用自动递增的 id?
我的意思是——我有(假设是五个)表,其中一个是包含有关销售信息的表(sale_id、sold_item_id),另外四个包含有关不同种类的已售商品的信息。我希望这四个共享一个 ID 池。我该怎么做?

编辑。
我决定选择 Juxhin 解决方案并创建了额外的表格。每次我在这 4 个表之一中创建记录时,我都会在该附加表中自动增加新 id,并且该 id 位于该新行的列之一中。

【问题讨论】:

  • 会发生很多其他因素,您可以只拥有一个 Data 类并在其中存储当前 ID 并增加该值

标签: java sql derby javadb


【解决方案1】:

这听起来像是 sequence 的用例,并且链接似乎表明 javadb 支持这一点。

因此,您为所有表创建了一个通用序列:

CREATE SEQUENCE MASEQUENCE

然后在插入表格时使用它:

 INSERT INTO TAB1(ID,....) VALUES(NEXT VALUE FOR MYSEQUENCE,...)

每个NEXT VALUE 都会推进序列,因此所有表中的所有 id 都是唯一的。

【讨论】:

    【解决方案2】:

    如果您希望在向其中一个表中插入内容时将一条新记录插入到所有 5 个表中,那么您可以为此创建一个触发器。

    在其他表的 id 列上创建外键也可能会有所帮助(以保持表同步)。

    【讨论】:

    • 我希望将新记录插入到一​​个表中,但要确保自动增量会给它一个来自公共池的 id。没关系,我选择了 Juxhin 解决方案。
    猜你喜欢
    • 2015-02-03
    • 2012-07-27
    • 2010-09-26
    • 1970-01-01
    • 2019-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-07
    相关资源
    最近更新 更多