哈!各位大虾,帮我,我想要这样的触发效果:
表结构例如是这样:create table TB(N char(10) primary key,M char(10))
当我首次将数据插入列M的时候,N自动生成0001
再插入列M第二行的时候,N自动生成0002
以此类推,每插入M时,N就自动递增1,前面的0不能省略,同时还有个要求,该触发器不能依赖序列。
create or replace trigger tri_input_no
before insert on mytb
for each row
begin
declare
cursor c is
select 's' from mytb;
rec varchar2(6);
begin
open c;
fetch c into rec;
if c%rowcount = 0 then
select '0001' into :new.mname from dual;
else
select (select lpad(substr(max(mname), 2) + 1, 4, '0') from mytb)
into :new.mname
from dual;
end if;
end;
end;
刚写出来,测试过的,把表和字段改下就行了
分享到:
相关推荐
如何实现Oracle主键自增,通过写sequence和触发器,很全面,绝对帮你解决问题
用于Oracle的主键进行自增的办法,有触发器 和序列机制
oracle 序列自增oracle
oracle 数据库主键自增脚本 --第一步,创建表 --第二步,创建自增序列 --第三步,创建触发器
一、创建序列 1.1、直接在PLSQL中设置 1.2、命令创建 create sequence seq_users ##创建序列seq_users increment by 1 ## 步长,每次加1 start with 1 ##从1开始 minvalue 1 ##最小值 maxvalue 9999999 ##最大值 ...
oracle 主键自增 给你个例子吧:看看肯定明白了!!! 首先,你要有一张表! CREATE TABLE example( ID Number(4) NOT NULL PRIMARY KEY, NAME VARCHAR(25), PHONE VARCHAR(10), ADDRESS VARCHAR(50) ); ...
详解Oracle序列和触发器的使用。。。。。。。。
一键生成Oracle自增序列和触发器,方便Oracle sql的编写加快代码编写速度。
在Oracle中,可以为每张表的主键创建一个单独的序列,然后从这个序列中获取自动增加的标识符,把它赋值给主键。 创建序列SEQ_ID,起始值为1,增量为1 create sequence SEQ_ID increment by 1 start with 1
给大家分享MyBatis Oracle 自增序列的实现方法及mybatis配置oracle的主键自增长的方法,非常不错具有一定的参考借鉴价值,感兴趣的朋友一起看看吧
用SQL语句实现设置序列和触发器。简单实用的小技巧。
通过sql建立序列和触发器,完成oracle的主键id的自增长
在设计数据库表的时候发现Oracle没有自增主键的设置,Google了解到Oracle本身并不支持自增主键,需要通过序列(Sequence)和触发器(Trigger)实现。 创建表Student Create Table Student( id number(12) primary ...
2、创建自动增长序列 代码如下: CREATESEQUENCETestIncrease_Sequence INCREMENTBY1–每次加几个 STARTWITH1–从1开始计数 NOMAXVALUE–不设置最大值,设置最大值:maxvalue9999 NOCYCLE–一直累加,不循环 CACHE10...
oracle数据库中主键属性没有自增长,所以只能自己写程序来实现,用序列与触发器,可以解决这个 问题
ORACLE数据库中实现属性的自增,是通过序列和触发器来实现的,当给表中插入数据时触发触发器,触发器从序列中得到相应的数值放入相应的位置,这样实现属性的自增。
主要介绍了在MySQL中创建实现自增的序列(Sequence)的教程,分别列举了两个实例并简单讨论了一些限制因素,需要的朋友可以参考下
oracle设置主键自动增长 首先,你要有一张表! 然后,你需要一个自定义的sequence 以上代码完成了一个序列(sequence)的建立过程,名称为... 书接上文,你只有了表和序列还不够,还需要一个触发器来执行它!代码如下:
使用D触发器设计一个11001序列检测器.pdf
在网上找的资料,oracle建表以后如何建自增序列和触发器。觉得比较实用,分享出来