Oracle 插入数据所需的触发器
每次在表中输入一行数据时,我都试图加载一个具有唯一序列号的列。如何实现这一点?您可以创建一个,然后在insert语句中使用sequence nextval,以获得顺序递增的值Oracle 插入数据所需的触发器,oracle,plsql,sequences,Oracle,Plsql,Sequences,每次在表中输入一行数据时,我都试图加载一个具有唯一序列号的列。如何实现这一点?您可以创建一个,然后在insert语句中使用sequence nextval,以获得顺序递增的值 CREATE SEQUENCE seq INCREMENT BY 1 START WITH 1 NOMAXVALUE NOCYCLE CACHE 10; 插入选项卡值(seq.nextval、col1、col2、col3)Oracle中没有“自动增量”或“标识”这样的东西,
CREATE SEQUENCE seq
INCREMENT BY 1
START WITH 1
NOMAXVALUE
NOCYCLE
CACHE 10;
插入选项卡值(seq.nextval、col1、col2、col3)代码>
Oracle中没有“自动增量”或“标识”这样的东西,
但是,如果希望列值自动递增,可以使用序列
进行此操作
创建序列后,可以使用插入触发器后的插入相同的值。
下面是一个触发器示例
CREATE OR REPLACE TRIGGER dep_ins_trig
BEFORE INSERT ON <table_name>
FOR EACH ROW
BEGIN
SELECT dept_seq.NEXTVAL
INTO :new.id
FROM dual;
END;
/
现在,您的emp\u id
列将接受“全局唯一标识符值”。
您可以通过如下方式忽略emp_id列在表中插入值
CREATE TABLE <table_name>
(emp_id RAW(16) DEFAULT SYS_GUID() PRIMARY KEY,
name VARCHAR2(30));
INSERT INTO <table_name> (name) VALUES ('name value');
插入(名称)值(“名称值”);
因此,它将在emp\u id
列中插入唯一值