在PL/SQL中,主键自增可以通过以下方式设置:
- 使用SEQUENCE:首先创建一个SEQUENCE对象来生成自增的主键值,然后在插入数据时从该SEQUENCE中获取下一个值作为主键值。示例代码如下:
CREATE SEQUENCE my_sequence
START WITH 1
INCREMENT BY 1
NOCACHE;
INSERT INTO my_table (id, name)
VALUES (my_sequence.NEXTVAL, 'John');
- 使用触发器:可以创建一个BEFORE INSERT触发器,在插入数据前自动从SEQUENCE中获取下一个值作为主键值。示例代码如下:
CREATE OR REPLACE TRIGGER my_trigger
BEFORE INSERT ON my_table
FOR EACH ROW
BEGIN
SELECT my_sequence.NEXTVAL INTO :NEW.id FROM dual;
END;
这样,在插入数据时不需要手动指定主键值,触发器会自动为每条记录分配一个唯一的主键值。