Oracle

将表t_uaer的字段ID设置为自增:(用序列sequence的方法来实现)

----创建表

  1. Create table t_user(
  2. Id number(6),userid varchar2(20),loginpassword varchar2(20),isdisable number(6)
  3. );

----创建序列

  1. create sequence seq_name
  2.  
  3. increment by 1 --用于指定序列增量(默认值:1),如果指定的是正整数,则序列号自动递增,如果指定的是负数,则自动递减。
  4.  
  5. start with 1 --用于指定序列生成器生成的第一个序列号,当序列号顺序递增时默认值为序列号的最小值 当序列号顺序递减时默认值为序列号的最大值。
  6.  
  7. nomaxvalue --用于指定序列生成器可以生成的最大序列号(必须大于或等于start with,并且必须大于minvalue),默认为nomaxvalue
  8.  
  9. nominvalue --用于指定序列生成器可以生成的最小序列号(必须小于或等于starr with,并且必须小于maxvalue),默认值为nominvalue
  10.  
  11. nocache --用于指定在内存中可以预分配的序列号个数(默认值:20
  12.  
  13. /*用于指定在达到序列的最大值或最小值之后是否继续生成序列号,默认为nocycle。
  14. 用于指定在内存中可以预分配的序列号个数(默认值:20)*/

----创建触发器

  1. before insert on t_user
  2. for each row
  3. begin
  4. select user_seq.nextval into :new.id from dual;
  5. end;

----测试

  1. insert into t_user(userid,loginpassword, isdisable)
  2. values('ffll','liudddyujj', 0);
  3. insert into t_user(userid,loginpassword, isdisable)
  4. values('dddd','zhang', 0)
  5. select * from t_user;

就可以看出结果。

对sequence说明:

increment by :用于指定序列增量(默认值:1),如果指定的是正整数,则序列号自动递增,如果指定的是负数,则自动递减。

start with :用于指定序列生成器生成的第一个序列号,当序列号顺序递增时默认值为序列号的最小值 当序列号顺序递减时默认值为序列号的最大值。

Maxvalue:用于指定序列生成器可以生成的最大序列号(必须大于或等于start with,并且必须大于minvalue),默认为nomaxvalue。

Minvalue:用于指定序列生成器可以生成的最小序列号(必须小于或等于starr with,并且必须小于maxvalue),默认值为nominvalue。

Cycle:用于指定在达到序列的最大值或最小值之后是否继续生成序列号,默认为nocycle。

Cache:用于指定在内存中可以预分配的序列号个数(默认值:20)。

在sequence中应注意:

1、 第一次NEXTVAL返回的是初始值;随后的NEXTVAL会自动增加你定义的INCREMENT BY值,然后返回增加后的值。CURRVAL 总是返回当前SEQUENCE的值,但是在第一次NEXTVAL初始化之后才能使用CURRVAL,否则会出错。一次NEXTVAL会增加一次SEQUENCE的值,所以如果你在同一个语句里面使用多个NEXTVAL,其值就是不一样的。

2、 如果指定CACHE值,ORACLE就可以预先在内存里面放置一些sequence,这样存取的快些。cache里面的取完后,oracle自动再取一组到cache。 使用cache或许会跳号, 比如数据库突然不正常down掉(shutdownabort),cache中的sequence就会丢失. 所以可以在create sequence的时候用nocache防止这种情况。

SQL server

int在SQL Server里取值范围很大,从-2的31次方到2的31次方减一。identity表示自增列的意思,而int identity(1,1)表示从1开始递增,每次自增1。

比如创建表语句是:

  1. create table table1(id int identity,t varchar(500))

表的第一列是id,它是int型的,并且是自增的,也就是你向表中插入数据的时候,不用给id列赋值,id列会自己复制。
比如:

  1. insert into Table1(t)
  2.  
  3. values('ok')

尽管没有给id列赋值,但执行以后id列会根据原来的插入情况自己填充一个值。下一次再插入数据,id列的值会在这次插入的基础上递增或递减。

括号(起始值,增量)

注意:oracle中没有这个!

Oracle SQLserver数据库创建表ID字段的自动递增_序列的更多相关文章

  1. Oracle数据库创建表ID字段的自动递增

    转载地址:http://blog.itpub.net/22880668/viewspace-1117343/ 将表t_uaer的字段ID设置为自增:(用序列sequence的方法来实现) ----创建 ...

  2. navicat for oracle 创建表ID字段的自动递增

    Oracle数据库创建表ID字段的自动递增   将表t_uaer的字段ID设置为自增:(用序列sequence的方法来实现) ----创建表 Create table t_user( Id numbe ...

  3. oracle 11g数据库--创建表空间,创建用户,用户授权并指定表空间。

    使用环境:我们安装完数据库后,查看以下服务是否启动 需要建库.实质上我们是建立表空间,从而进行库的还原工作. 根据本例情况,是在下面目录下进行的操作. D:\app\Administrator\ora ...

  4. 【转载】Sqlserver在创建表的时候如何定义自增量Id

    在Sqlserver创建表的过程中,有时候需要为表指定一个自增量Id,其实Sqlserver和Mysql等数据库都支持设置自增量Id字段,允许设置自增量Id的标识种子和标识自增量,标识种子代表初始自增 ...

  5. Sqlserver列出所有数据库名,表名,字段名

    Sqlserver列出所有数据库名,表名,字段名   1.获取所有数据库名:   ? 1 SELECT Name FROM Master..SysDatabases ORDER BY Name   注 ...

  6. Oracle 删除用户和表空间////Oracle创建删除用户、角色、表空间、导入导出、...命令总结/////Oracle数据库创建表空间及为用户指定表空间

    Oracle 使用时间长了, 新增了许多user 和tablespace. 需要清理一下 对于单个user和tablespace 来说, 可以使用如下命令来完成. 步骤一:  删除user drop ...

  7. SqlServer判断数据库、表、字段、存储过程、函数是否存在

    原文:SqlServer判断数据库.表.字段.存储过程.函数是否存在 判断数据库是否存在 if exists (select * from sys.databases where name = '数据 ...

  8. Oracle数据库创建表是有两个约束带有默认索引

    Oracle数据库创建表是有两个约束带有默认索引.1.主键primary Key:唯一索引.非空2.唯一Unique:唯一索引,可以是空值如果没有设定主键和唯一约束,表中不会有默认索引的. 建立主键/ ...

  9. mysql数据库、表、字段、记录:增、删、改、查

    /* 结构:数据库.表.字段.记录 操作:增删改查 */ -- 1.数据库:增删改查 create datebase if not exists jkxy; drop database if exis ...

随机推荐

  1. HDU 1043 & POJ 1077 Eight(康托展开+BFS+预处理)

    Eight Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 30176   Accepted: 13119   Special ...

  2. 【转】bShare分享插件的使用

    原文地址:http://blog.csdn.net/pan_junbiao/article/details/17884203 1.引用JS文件 分享标签: 1.class="bshare-c ...

  3. 在HTML中如何把块的边框做成圆角

    adius,就是半径的意思.用这个属性可以很容易做出圆角效果,当然,也可以做出圆形效果.原理很简单,“正方形的内切圆的半径等于正方形边长的一半”.下面就做一个红色的圆. 工具/原料 Adobe Dre ...

  4. p4-hlir/test源码 stateful.p4 control_flow_opt.p4

    stateful.p4 #include "includes/headers.p4" #include "includes/parser.p4" action ...

  5. Javascript 笔记与总结(2-18)正则验证与正则匹配

    ① 判断 String 是否符合正则要求 patt.test(String); [例]表单提交: a.用户名不能为空,只能是数字及字母,6-11位 b.email 不能为空且格式正确 <!DOC ...

  6. skype msnLite 静态路由

    连接vpn后防止skype和msn重复登陆 route -p add ip网段 mask 子网掩码 本地网管 skyperoute -p add 91.0.0.0 mask 255.0.0.0 192 ...

  7. 修改linux系统时间的方法(date命令)

    修改linux系统时间的方法(date命令) 来源:互联网 作者:佚名 时间:11-18 23:22:27 [大 中 小] date命令不仅可以显示系统当前时间,还可以用它来修改系统时间,下面简单的介 ...

  8. [ZZ]计算机视觉、机器学习相关领域论文和源代码大集合

    原文地址:[ZZ]计算机视觉.机器学习相关领域论文和源代码大集合作者:计算机视觉与模式 注:下面有project网站的大部分都有paper和相应的code.Code一般是C/C++或者Matlab代码 ...

  9. PIVOT 用于将列值旋转为列名

    PIVOT 用于将列值旋转为列名(即行转列),在 SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT 的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )A ...

  10. page fault rate

    COMPUTER ORGANIZATION AND ARCHITECTURE DESIGNING FOR PERFORMANCE NINTH EDITION A program computes th ...