0

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

4

1 回答 1

2

创建序列

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 中变得更简单了,因为您可以直接分配给 the:new.name_of_primary_key_column而不是从对偶中选择。而且我知道 12c 中有一些额外的语法糖,虽然我没有玩过它,但它使这变得更加容易。

于 2013-07-05T04:24:14.303 回答