【问题标题】:Row Number for table in plsql [duplicate]plsql中表的行号[重复]
【发布时间】:2013-07-03 02:05:25
【问题描述】:

我希望 PLSQL 中表的第一列自动递增。该列将是该表的主键。我听说过一种叫做序列化的东西,但我没有得到正确的描述。我在 SQL Server 中工作。我是 Oracle(PLSQL)的新手。请帮我找出合适的解决方案。

【问题讨论】:

    标签: oracle plsql oracle10g


    【解决方案1】:

    创建序列

    CREATE SEQUENCE name_of_sequence
      START WITH 1
      INCREMENT BY 1
      CACHE 100;
    

    创建触发器

    CREATE OR REPLACE TRIGGER trigger_name
      BEFORE INSERT ON table_name
      FOR EACH ROW
    BEGIN
      SELECT name_of_sequence.nextval
        INTO :new.name_of_primary_key_column
        FROM dual;
    END;
    

    触发器的语法在 11g 中变得更简单了,因为您可以直接分配给:new.name_of_primary_key_column,而不是从对偶中进行选择。而且我知道 12c 中有一些额外的语法糖,虽然我没有玩过,但它使这变得更加容易。

    【讨论】:

      猜你喜欢
      • 2022-11-16
      • 2018-08-21
      • 1970-01-01
      • 1970-01-01
      • 2015-11-06
      • 2022-11-22
      • 1970-01-01
      • 2018-04-26
      • 1970-01-01
      相关资源
      最近更新 更多