【问题标题】:How do you autoincrement a column in Oracle 11g and previous? [duplicate]如何在 Oracle 11g 及之前的版本中自动增加列? [复制]
【发布时间】:2019-01-16 13:07:10
【问题描述】:

我在 Oracle 12c 中开发了应用程序,其中 Id 是自动递增的,但我想在 oracle11g 中运行相同的应用程序如何做到这一点。任何自动增加 Id 列的插件

【问题讨论】:

  • 如果都是 PL/SQL,您可以使用 SEQUENCE 并使用 NEXTVAL 填充字段。
  • 分享给出问题的代码

标签: oracle


【解决方案1】:

没有真正简单的方法,您可以使用触发器使其自动执行,但我担心它只会让事情变得更糟。

假设你有一个表 TEST

CREATE TABLE TEST (
    ID_TEST NUMBER,
    VAL_TEST VARCHAR2(10)
);

如果您想自动设置 ID_TEST,您可以:

CREATE SEQUENCE SEQ_TEST_ID START WITH 1 NOCACHE; -- to have single increments

然后更改插入添加 ID_TEST 列。

INSERT INTO TEST (ID_TEST, VAL_TEST) values (SEQ_TEST_ID.NEXTVAL, 'foo');
INSERT INTO TEST (ID_TEST, VAL_TEST) values (SEQ_TEST_ID.NEXTVAL, 'foo');

当然,您仍然需要修改您的插入语句,因此这可能是也可能不是快速方法。

【讨论】:

  • “使用触发器使其自动化”是在 12c 之前的 Oracle 版本中实现此目的的标准方法。
猜你喜欢
  • 2016-08-09
  • 2017-07-01
  • 2014-01-06
  • 2012-09-14
  • 2011-08-13
  • 1970-01-01
  • 2016-01-07
  • 2015-01-15
  • 2019-10-11
相关资源
最近更新 更多