Sequence Trigger
来源:互联网 发布:linux安装ftp服务步骤 编辑:程序博客网 时间:2024/06/05 17:59
SQL> SQL> create sequence sq1 2 start with 1 3 increment by 1 4 minvalue 1 5 maxvalue 9999999 6 nocycle 7 nocache 8 noorder; Sequence created SQL> SQL> create or replace trigger pn_trigger 2 before insert on users 3 for each row 4 begin 5 select sq1.nextval into:new.id from sys.dual; 6 end; 7 / Trigger created SQL> insert into users( name) values('zhsan'); 1 row inserted SQL> select * from users; ID NAME------- ------------------------------ 1 zhsan SQL> insert into users values('lisi'); insert into users values('lisi') ORA-00947: not enough values SQL> insert into users( name) values('lisi'); 1 row inserted SQL> select * from users; ID NAME------- ------------------------------ 1 zhsan 2 lisi SQL> drop table users; Table dropped SQL> SQL> create table 表名( 2 userid number(10) primary key, 3 username varchar2(20) 4 ); Table created SQL> select * from 表名 2 / USERID USERNAME----------- -------------------- SQL> SQL> CREATE SEQUENCE 序列名 2 INCREMENT BY 1 -- 每次加几个 3 START WITH 1 -- 从1开始计数 4 NOMAXVALUE -- 不设置最大值 5 NOCYCLE -- 一直累加,不循环 6 CACHE 10; Sequence created SQL> SQL> CREATE TRIGGER 触发器名 BEFORE 2 insert ON 表名 FOR EACH ROW 3 begin 4 select 序列名.nextval into:New.userid from dual; 5 end; 6 / Trigger created SQL> commit; Commit complete SQL> insert into 表名(Username) values('test'); 1 row inserted SQL> insert into 表名(Username) values('test'); 1 row inserted SQL> insert into 表名(Username) values('test'); 1 row inserted SQL> select * from 表名 2 / USERID USERNAME----------- -------------------- 1 test 2 test 3 test SQL> insert into 表名 values('test'); insert into 表名 values('test') ORA-00947: not enough values SQL> select * from 表名 2 / USERID USERNAME----------- -------------------- 1 test 2 test 3 test SQL> SQL> create sequence SEQ_TEST 2 increment by 1 3 start with 1 4 minvalue 1 5 nomaxvalue 6 nocycle 7 / Sequence created SQL> create table TEST(TEST_ID number primary key,symbol varchar2(10)) 2 / Table created SQL> SQL> create trigger TRG_TEST before insert on TEST 2 for each row 3 begin 4 select SEQ_TEST.nextval into :new.TEST_ID from dual; 5 end; 6 / Trigger created SQL> insert into TEST(symbol) values('abc'); 1 row inserted SQL> insert into TEST(symbol) values('abc'); 1 row inserted SQL> select * from Test 2 / TEST_ID SYMBOL---------- ---------- 1 abc 2 abc SQL> insert into TEST values(SEQ_TEST.nextval,'bcd'); 1 row inserted SQL> select * from Test 2 / TEST_ID SYMBOL---------- ---------- 1 abc 2 abc 4 bcd SQL> insert into TEST values(SEQ_TEST.nextval,'bcd'); 1 row inserted SQL> select * from Test 2 / TEST_ID SYMBOL---------- ---------- 1 abc 2 abc 4 bcd 6 bcd SQL> insert into TEST values(SEQ_TEST.nextval,'bcd'); 1 row inserted SQL> select * from Test; TEST_ID SYMBOL---------- ---------- 1 abc 2 abc 4 bcd 6 bcd 8 bcd SQL> insert into TEST(symbol) values('abc'); 1 row inserted SQL> select * from Test; TEST_ID SYMBOL---------- ---------- 1 abc 2 abc 4 bcd 6 bcd 8 bcd 9 abc 6 rows selected triSQL> drop trigger TRG_TEST; Trigger dropped SQL> insert into TEST(symbol) values('abc'); insert into TEST(symbol) values('abc') ORA-01400: cannot insert NULL into ("SCOTT"."TEST"."TEST_ID") SQL> insert into TEST values(SEQ_TEST.nextval,'bcd'); 1 row inserted SQL> insert into TEST values(SEQ_TEST.nextval,'bcd'); 1 row inserted SQL> insert into TEST values(SEQ_TEST.nextval,'bcd'); 1 row inserted SQL> insert into TEST values(SEQ_TEST.nextval,'bcd'); 1 row inserted SQL> select * from Test; TEST_ID SYMBOL---------- ---------- 1 abc 2 abc 4 bcd 6 bcd 8 bcd 9 abc 10 bcd 11 bcd 12 bcd 13 bcd 10 rows selected SQL>
0 0
- Sequence Trigger
- Forms trigger Firing Sequence
- 创建 trigger,sequence , procdure
- Form Trigger Sequence Demo Form
- Oracle create trigger and sequence
- Trigger Execution Sequence in Forms 4.5
- Oralce: Sequence & Trigger to Achieve Auto-Increment
- Trigger Execution Sequence in Oracle Forms
- (V45) Trigger Execution Sequence in Forms 4.5
- oracle创建trigger procedure function sequence plsql
- oracle创建sequence和触发器trigger
- oracle中sequence trigger 及构造自增长字段
- 创建sequence和trigger ORA-01400: 无法将 NULL 插入
- Orcle 主键自增(序列sequence、触发器trigger、主键primary)
- oracle中利用trigger,sequence自动生成ID
- oracle 没有autoincrement,使用sequence和trigger实现自增
- sql: Oracle 11g create table, function,trigger, sequence
- sql: Oracle 11g create table, function,trigger, sequence
- 浅析Java中的final关键字
- 安卓中的Intent和Intent Filter
- 数据结构实验之查找二:平衡二叉树【OJ--3374】
- 面向切面编程(AOP)的理解
- DepSys:Dependency Aware Integration of CPSs for Smart Home
- Sequence Trigger
- 使用jquery.qrcode生成二维码
- iOS监听某些事件的方法
- 二分查找
- 学习之旅启动
- Android框架 -- GreenDao
- UVA-156 反片语
- 表间关联拖放设计界面初步完成,状态保存没问题
- 行情列表重构 TabBar&NavBar&tableView