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