我希望PLSQL中表的第一列自动递增。该列将是该表的主键。我听到了一些叫做序列化的东西,但我没有得到正确的描述。我在SQL Server工作。我是Oracle(PLSQL)的新手。请帮我找一个合适的解决方案。
答案 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中有一些额外的语法糖,这使得这更容易,虽然我没有玩过。