编写的许多应用程序需要使用序号来跟踪发票号、客户编号以及每次需要新项时其编号就会增大 1 的其他对象。通过使用标识列,数据库管理器可以使表中的值自动递增。虽然这项技术对于单独的表来说效果不错,但它可能不是生成多个表中必须使用的唯一值的最方便方法。
CREATE SEQUENCE customer_no AS INTEGER
VALUES NEXT VALUE FOR customer_no
INSERT INTO customers VALUES
(NEXT VALUE FOR customer_no, 'comment', ...)
INSERT INTO invoices
(34,PREVIOUS VALUE FOR customer_no, 234.44, ...)
PREVIOUS VALUE 函数可以在应用程序内多次使用,并且它仅返回该应用程序生成的最后一个值。后续事务可能已将序列递增至另一个值,但您看到的始终是生成的最后一个值。