plsql中表的行号

时间:2013-07-05 04:08:26

标签: oracle plsql oracle10g

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

1 个答案:

答案 0 :(得分: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中变得更简单,因为您可以直接分配到:new.name_of_primary_key_column而不是从双重选择。而且我知道12c中有一些额外的语法糖,这使得这更容易,虽然我没有玩过。