oracle中插入数据时自动生成主键的触发器
2016-11-15 13:41
309 查看
create or replace trigger ChangeMessageSequenceTrigger
before insert on MESSAGEINFORMATION
for each row
declare
message_num messageinformation.messagenum%type;
begin
select messageinformation_sequence.nextval into
message_num from dual;
if :new.messagenum is null then
:new.messagenum := message_num;
end if;
end;
/
需要注意的是,其中的生成序列的值要从dual这个表中查询,一般当SELECT 语句的目标内容不是表中内容时,为了结构的完整性,用DUAL表充当。你也可以用自己的表来查询试试,会发现生成的序列值不对。
:new代表刚刚执行的新插入的行,这个是系统变量,不是一个占位符。
before insert on MESSAGEINFORMATION
for each row
declare
message_num messageinformation.messagenum%type;
begin
select messageinformation_sequence.nextval into
message_num from dual;
if :new.messagenum is null then
:new.messagenum := message_num;
end if;
end;
/
需要注意的是,其中的生成序列的值要从dual这个表中查询,一般当SELECT 语句的目标内容不是表中内容时,为了结构的完整性,用DUAL表充当。你也可以用自己的表来查询试试,会发现生成的序列值不对。
:new代表刚刚执行的新插入的行,这个是系统变量,不是一个占位符。
相关文章推荐
- oracle中插入数据时自动生成主键的触发器
- oracle插入时如何自动生成主键
- mybatis获取插入数据时自动生成的主键id
- oracle插入主键数据、sequence和触发器
- ORACLE 中,数据的id号自动生成,利用触发器的实现
- Oracle建表,建序列,建触发器,自动生成唯一主键
- Oracle建表,建序列,建触发器,自动生成唯一主键。dual解释
- Oracle用触发器实现插入数据主键自增
- oracle创建表,序列,触发器,自动生成唯一主键
- oracle 在插入数据库时自动生成主键
- 【JDBC】向数据表插入数据时,自动获取生成的主键
- ibatis实战之插入数据(自动生成主键)
- Oracle用触发器实现插入数据主键自增
- 怎样将数据同时插入两个表中(事物开始后,插入语句后,自动增长列有没有生成一个值,有的话,值怎样获得)
- 在oracle中自动大批量生成测试数据
- oracle主键自动增长的实现 Oracle Sequence oracle maxid自动生成--ORA-00001: 违反唯一约束条件 (NAME.SYS_C005547)产生的原因之一(select * from all_cons_columns w
- ORACLE 批量插入 主键为自增序列 有几个字段数据从其他表导入的 有几个是固定的
- oracle的序列使用,创建、表中调用、主键自动生成
- ORACLE 利用触发器避免数据重复插入
- iBatis自动生成的主键 (Oracle,MS Sql Server,MySQL)