`

自动增长字段

阅读更多
Oracle



1、建用户数据表
      drop table dectuser;
      create table dectuser(
           userid integer primary key, /*主键,自动增加*/
           name varchar2(20),
          sex varchar2(2)
           );

2、创建自动增长序列
      drop sequence dectuser_tb_seq;
      create sequence dectuser_tb_seq minvalue 1 maxvalue 99999999
               increment by 1
               start with 1;   /*步长为1*/

 

         a.查询序列的下一次,每查询一次,都会引起序列当前的变化
 
       select dectuser_tb_seq.nextval from dual
 
     b.查询序列的当前值,不会引起序列当前值的变化

    select dectuser_tb_seq.currval from dual




3、创建触发器
      create or replace trigger dectuser_tb_tri
          before insert on dectuser     /*触发条件:当向表dectuser执行插入操作时触发此触发器*/
           for each row                 /*对每一行都检测是否触发*/
           begin                        /*触发器开始*/
                 select dectuser_tb_seq.nextval into :new.userid from dual;   /*触发器主题内容,即触发后执行的动作,在此是取得序列dectuser_tb_seq的下一个值插入到表dectuser中的userid字段中*/
            end;
           /*退出sqlplus行编辑*/
4、提交
       commit;

       现在就完成了自增主键的设定,搞定!可以检测一下。
      insert into dectuser(name,sex) values ('wang','女');
****************************************************************************************************

总的来说,通过在insert操作之前,添加一个触发器,将序列的值放到了将要插入的数据的ID中。
所以,需要 建表->建序列->建触发器 这样一个过程。
我觉得有几个要注意的
一是主键类型为 INT型比较好。
二是触发器主题内容中,select...into 后面的冒号不能掉了。



转载:

http://blog.csdn.net/wangzwhu/archive/2008/10/29/3173918.aspx







Mysql:



比如有个表:



CREATE TABLE `person` (                               
          `id` int(10) NOT NULL AUTO_INCREMENT,               
          `name` varchar(20) NOT NULL,                        
          PRIMARY KEY (`id`)                                  
        ) ENGINE=InnoDB AUTO_INCREMENT=123456 DEFAULT CHARSET=gbk 





这里就建立了一个person表,id 字段自动增加,每次增加1,从123456开始,注意表一定要有主键





分享到:
评论

相关推荐

    sqlserver自动增长字段设置方法.rar

    从网上搜集的sqlserver自动增长字段设置方法

    hibernate自动增长字段

    关于hibernate自动增长字段的说明和介绍

    SQL Server中实现字段值自动增长且连续

    这个方法不适合初学者。建议有一定基础的学者可以进行研究。

    程序员的SQL金典

    本书第1、2章介绍数据库系统的基本知识以及基本操作;...第10章介绍注入漏洞攻击、SQL 调优、事务、自动增长字段、NULL 值处理、开窗函数等高级话题;第11章以一个案例讲解书中知识点在实际开发中的应用。

    《程序员的SQL 金典》

    第一本专门为程序员编写的数据库图书 本书第1、2 章介绍数据库...第10 章介绍注入漏洞攻击、SQL 调优、事务、自动增长字段、NULL 值处 理、开窗函数等高级话题;第11章以一个案例讲解书中知识点在实际开发中的应用。

    程序员的SQL金典6-8

     10.4.2 MS SQL Server中的自动增长字段  10.4.3 Oracle中的自动增长字段  10.4.4 DB2中的自动增长字段  10.5 业务主键与逻辑主键  10.6 NULL的学问  10.6.1 NULL与比较运算符  10.6.2 NULL和计算字段  ...

    程序员的SQL金典7-8

     10.4.2 MS SQL Server中的自动增长字段  10.4.3 Oracle中的自动增长字段  10.4.4 DB2中的自动增长字段  10.5 业务主键与逻辑主键  10.6 NULL的学问  10.6.1 NULL与比较运算符  10.6.2 NULL和计算字段  ...

    程序员的SQL金典3-8

     10.4.2 MS SQL Server中的自动增长字段  10.4.3 Oracle中的自动增长字段  10.4.4 DB2中的自动增长字段  10.5 业务主键与逻辑主键  10.6 NULL的学问  10.6.1 NULL与比较运算符  10.6.2 NULL和计算字段  ...

    程序员的SQL金典4-8

     10.4.2 MS SQL Server中的自动增长字段  10.4.3 Oracle中的自动增长字段  10.4.4 DB2中的自动增长字段  10.5 业务主键与逻辑主键  10.6 NULL的学问  10.6.1 NULL与比较运算符  10.6.2 NULL和计算字段  ...

    程序员的SQL金典.rar

     10.4.2 MS SQL Server中的自动增长字段  10.4.3 Oracle中的自动增长字段  10.4.4 DB2中的自动增长字段  10.5 业务主键与逻辑主键  10.6 NULL的学问  10.6.1 NULL与比较运算符  10.6.2 NULL和计算字段  ...

    SQL Server中实现字段值自动增长且连续.pdf

    SQL Server中实现字段值自动增长且连续.pdf

    oracle设置主键自动增长

    oracle设置主键自动增长 首先,你要有一张表! 然后,你需要一个自定义的sequence  以上代码完成了一个序列(sequence)的建立过程,名称为emp_sequence,范围是从1开始到无限大(无限大的程度是由你机器决定的),nocycle...

    小议sqlserver数据库主键选取策略

    常见的数据库主键选取方式有: 自动增长字段 手动增长字段 UniqueIdentifier “COMB(Combine)”类型 一、自动增长型字段 很多数据库设计者喜欢使用自动增长型字段,因为它使用简单。自动增长型字段允许我们在向...

    oracle触发器实现主键自动增长

    oracle触发器实现主键自动增长操作

    小议数据库主键选取策略

    我们在建立数据库的时候,需要为每张表指定一个主键,所谓主键是能够标识表中某一行的属性或属性组,一个表...  自动增长字段  手动增长字段  UniqueIdentifier  “COMB(Combine)”类型  一、自动增长型字段

    史上最强全面解析SQLite

    目录 使用SQLite编程的快速介绍............................................................. 5 下载代码 .......................................................................... 5 创建一个新数据库 .......

    sql语句查询数据库中的表名/列名/主键/自动增长值实例

    sql语句查询数据库中的表名/列名/主键/自动增长值 —-查询数据库中用户创建的表 —-jsj01 为数据库名 select name tablename from jsj01..sysobjects where type=’U’ and name not in (‘dtproperties’) –查询...

    oracle 创建字段自增长实现方式

    mysql等其他数据库中有随着记录的插入而表ID自动增长的功能,而oracle却没有这样的功能,我们有以下两种方式可以解决字段自增长的功能。  因为两种方式都需要通过创建序列来实现,这里先给出序列的创建方式。 ...

    MongoDB 自动增长

    counters 集合中实现_id字段自动增长。 使用 counters 集合 考虑以下 products 文档。我们希望 _id 字段实现 从 1,2,3,4 到 n 的自动增长功能。 { "_id":1, "product_name": "Apple iPhone", "c

Global site tag (gtag.js) - Google Analytics