Welcome 微信登录

首页 / 数据库 / MySQL / Oracle实现table中的自动编号

这是个简单的功能,就是利用自动增长列和触发器来实现。1.首先创建一个简单的表格users
  1. --create table users   
  2. create table system.users(  
  3. userid varchar2(20) primary key,  
  4. username varchar(20) not null,  
  5. userpassword varchar2(20) not null,  
  6. userage number(3) default 0,  
  7. usersex char(2) default "男"  
  8. )  
primary key设置主键not null不允许为空default 设置默认值 2.然后创建自动增长列
  1. --create sequences userid   
  2. create sequence system.users_userid_sequence  
  3. start with 1  
  4. increment by 1  
  5. minvalue 1  
  6. nomaxvalue  
  7. nocache  
从1开始每次增长1最小值为1没有最大值不设置缓存 3.创建触发器
  1. --create triggers userid   
  2. create or replace trigger system.users_userid_bifer  
  3. before insert   
  4. on system.users  
  5. for each row  
  6. when(new.userid is null)  
  7. begin  
  8. select system.users_userid_sequence.nextval into:new.userid from dual;  
  9. end;  
create or replace 是创建或替换的意思,没有就创建,有就替换掉当在system.users这个表的每一行中执行插入之前检查当前(new代表当前的,也就是users)表格中的userid是否为null,如果是开始执行将从自动增长列中查询获得下一个数并赋给当前的userid执行结束至于from dual这个完全是为了语法的统一。dual没有什么意义。 4.测试
  1. insert into system.users(username,userpassword,userage,usersex) values"张三","123456","20","男");  
  2. insert into system.users(username,userpassword,userage,usersex) values"李四","123456","21","男");  
  3.   
  4. select * from system.users  
Oracle ORA-01045错误解决方法Oracle调优HINT提示相关资讯      Oracle教程 
  • Oracle中纯数字的varchar2类型和  (07/29/2015 07:20:43)
  • Oracle教程:Oracle中查看DBLink密  (07/29/2015 07:16:55)
  • [Oracle] SQL*Loader 详细使用教程  (08/11/2013 21:30:36)
  • Oracle教程:Oracle中kill死锁进程  (07/29/2015 07:18:28)
  • Oracle教程:ORA-25153 临时表空间  (07/29/2015 07:13:37)
  • Oracle教程之管理安全和资源  (04/08/2013 11:39:32)
本文评论 查看全部评论 (0)
表情: 姓名: 字数