首页 > 数据库 > mysql教程 > 如何在Oracle中为现有主键列添加自动增量?

如何在Oracle中为现有主键列添加自动增量?

Linda Hamilton
发布: 2025-01-03 05:35:39
原创
1027 人浏览过

How to Add Auto-Increment to an Existing Primary Key Column in Oracle?

在 Oracle 中向现有列添加自动增量

在 Oracle 中,向已存在的现有列添加自动增量功能表的主键,根据您的Oracle版本可以采用不同的方法使用。

对于 Oracle 11g 及之前版本

  • 创建一个序列以通过触发器递增列。
CREATE SEQUENCE t_seq
  START WITH 150111111
  INCREMENT BY 1;

CREATE OR REPLACE TRIGGER t_trg
  BEFORE INSERT ON t
  FOR EACH ROW
  WHEN (new.id IS NULL)
  BEGIN
    SELECT t_seq.NEXTVAL
    INTO   :new.id
    FROM   dual;
  END;
登录后复制

对于 Oracle 12c 和稍后

  • 使用 Identity 列功能。
CREATE TABLE t
  (
    ID NUMBER GENERATED ALWAYS AS IDENTITY
    START WITH 150111111 INCREMENT BY 1,
    text VARCHAR2(50)
  );
登录后复制

插入数据

一旦自动递增功能已配置,您可以将数据插入表中通常。

示例

假设有一个名为 t 的表,其中包含名为 ID 的列作为主键,并且您希望将其配置为从 150111111 开始自动递增。

在Oracle中使用序列方法11g:

INSERT INTO t(text) VALUES('auto-increment test 1');
登录后复制

在 Oracle 12c 中使用 Identity 列方法:

INSERT INTO t(text) VALUES('This table has an identity column');
登录后复制

注意:

  • 创建的序列自增主键名为 ISEQ$$,可以使用以下命令进行验证USER_SEQUENCES 视图。
  • ALL_TAB_IDENTITY_COLS 视图提供有关数据库中标识列的信息。

以上是如何在Oracle中为现有主键列添加自动增量?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板