例如在表user中将主键uid设为自动增长列:

table: user

column: uid ,定义为主键,int或number

结合sequence和trigger实现id列的值的自动增长:

1、create a sequence for the column `uid` of `user`:

CREATE SEQUENCE seq_user_uid

INCREMENT   BY   1       --   每次加几个

START   WITH   1        --   从1开始计数

NOMAXVALUE             --   不设置最大值

MINVALUE   1              -- 序列最小值,小于或等于start值

-- MAXVALUE  20         --   累加,最大值20

NOCYCLE                  --   一直累加,不循环

--CYCLE                  --   循环 ,达到最大值20后重新开始,违反唯一约束,不适用于主键

CACHE   10                -- 缓存序列个数,有助于提高效率,但可能造成跳号。

2、Create a trigger for table `user`:

create or replace trigger user_trg

before insert on user

for each row    --行级的trigger

declare

tmpNum number;

begin

SELECT seq_user_uid.nextval INTO tmpNum FROM dual;

--:new.uid := 'u' || lpda(tmpNum,7,'0');

:new.uid := tmpNum;

end user_trg;

-------------------------//--:new uid := 'u' || lpda(tmpNum,7,'0');可能有问题,触发器可能会报错,

或者直接写成

create or replace trigger user_trg

before insert on user

for each row    --行级的trigger

begin

SELECT seq_user_uid.nextval INTO :new.uid FROM dual;

end user_trg;

3、插入值时必须将列名都写上。

一旦定义了seq_user_uid,你就可以用CURRVAL,NEXTVAL

CURRVAL=返回   sequence的当前值

NEXTVAL=增加sequence的值,然后返回   sequence   值

比如:

seq_user_uid.CURRVAL

seq_user_uid.NEXTVAL

可以使用sequence的地方:

-   不包含子查询、snapshot、VIEW的   SELECT   语句

-   INSERT语句的子查询中

-   NSERT语句的VALUES中

-   UPDATE   的   SET中

INSERT   INTO   emp   VALUES

(empseq.nextval,   'LEWIS',   'CLERK',7902,   SYSDATE,   1200,   NULL,   20);    //empseq.nextval, 添加自增列

SELECT   empseq.currval   FROM   DUAL; //返回最后一个自增值

Alter   Sequence

你或者是该sequence的owner,或者有ALTER   ANY   SEQUENCE   权限才能改动sequence. 可以alter除start至以外的所有sequence参数.如果想要改变start值,必须 drop sequence

再 re-create   .

Alter   sequence   的例子

ALTER   SEQUENCE   emp_sequence

INCREMENT   BY   10

MAXVALUE   10000

CYCLE     --   到10000后从头开始

NOCACHE   ;

影响Sequence的初始化参数:

SEQUENCE_CACHE_ENTRIES   =设置能同时被cache的sequence数目。

可以很简单的Drop   Sequence

DROP   SEQUENCE   order_seq;

oracle LPDA,oracle中自动增长列的设置相关推荐

  1. Oracle利用序列实现自动增长列

    在SQL Server以及MySql中都有相应的自动增长列类型,而Oracle中则没有此类型,那如果要实现自动增长列需要怎么办呢. 我们可以利用序列来实现.插入数据时候,可以像sql以及mysql一样 ...

  2. oracle查询一列汇总,【学习笔记】Oracle数据筛选 查找oracle所有表中的特定列中的某些数据...

    天萃荷净 开发DBA反映,根据需求需要查找Oracle数据库中所有表中特定的列中指定的关键词的数据,和数据内容和数量 找出数据库中所有表表中REMARK列中含有WN.wind.wlr中表名和数量 de ...

  3. 2019-7-26 [MySQL] 安装与介绍 语句分类/语法 数据类型 DDL数据定义:创建/查看/删除/使用 DML数据操作:增删改 主键约束 自动增长列 非空约束 默认值 Navicat

    文章目录 0.知识回顾 1.数据库介绍 1.1 数据库概述 1.1.1 什么是数据库 1.1.2 什么是数据库管理系统 1.1.3 数据库与数据库管理系统的关系 1.2 数据库表 1.3 表数据 1. ...

  4. MySQL中自动增长类型要求

    自动增长(auto_increment) 1.一个表中只能有一个列为自动增长: 否则会报错Incorrect table definition; there can be only one auto ...

  5. SQL获取刚插入的记录的自动增长列ID的值

    假设表结构如下: CREATE TABLE TestTable ( id int identity, CreatedDate datetime ) SQL2005获得新增行的自动增长列的语句如下: i ...

  6. 数据的完整性(正确性和准确性):分类-实体完整性:主键约束、唯一约束、自动增长列。域完整性-非空约束、默认值约束、检查约束。引用完整性-一对一、一对多、多对多

    文章目录 1 数据的完整性作用 2 完整性的分类 2.1 实体完整性 2.1.1 主键约束 primary key 2.1.2 唯一约束 unique 2.1.3 自动增长列 auto_increme ...

  7. HTML如何实现单元格自动编号,如何在Excel中自动为列编号?

    如何在Excel中自动为列编号? 您是否曾经想过在Excel中对列进行编号? 本教程将讨论一些对列进行编号的方法. 通过公式= ROW()自动编号​​一列 如果要根据行号对列进行编号,可以键入此公式 ...

  8. Pg sql 创建自动增长列及修改序列当前值

    Pg 数据库创建自动增长列需要使用sql创建序列,然后再将序列绑定到对应的字段上. 创建序列的sql语句为 CREATE SEQUENCE REDIS_NODE_ID_SEQSTART WITH 1 ...

  9. DGV设置自动增长列

    当一个DGV要显示两个WEB接口的列表时,使用AutoGenerateColumns自动在后面增加列 try {Models.Department.Query.ResultResponse query ...

最新文章

  1. ARP协议全面实战手册1.1.2设置过滤器
  2. 为什么企业需关心DDoS攻击?—Vecloud微云
  3. IO流介绍、java常用的几个IO流类之间的区别,以及各自的用法、使用场景
  4. 前端-----数据类型和运算符
  5. JAVA之运算符优先级
  6. hive mysql互导_Hive和MySQL数据互导
  7. 计算机配置cpo,使用域组策略及脚本统一配置防火墙-20210421070355.docx-原创力文档...
  8. 随笔:《向死而生》---我修的死亡学分
  9. 少量数据通过Excel表格数据导入server SqlServer查询
  10. 现在谁还会LOL钻石网吧特权?
  11. python趣味编程---羊车门问题
  12. Java实例教程(上)
  13. 【一致性仿真】Group-Bipartite Consensus in the Networks With Cooperative-Competitive Interactions
  14. LabVIEW编程LabVIEW控制KELLER压力传感器例程与相关资料
  15. 必须要知道的GridView用法(1)
  16. php调用百度地图定位,php用百度地图API进行IP定位和GPS定位
  17. 分享142个ASP源码,总有一款适合您
  18. 基于Dubbo协议的接口测试
  19. 【C语言项目实战】C语言实现文件加密
  20. 广东省计算机水平考试证书有效期,软件设计师证书有效期是多久?永久有效吗?...

热门文章

  1. 想成为BAT中的一员,你总要去学点什么(二)
  2. Hive _函数(系统内置函数、自定义函数、自定义UDF函数)
  3. 爬虫 spider12——暂停小总结_爬虫流程_微服务架构流程
  4. leetcode 551. 学生出勤记录 I(Java版)
  5. 操作系统:第二章 进程管理3 - 进程同步与互斥
  6. 关于我国科技创新研究,以及创新成果的转化的思考
  7. 看动画学算法之:排序-插入排序
  8. linux网络编程--select/poll/epoll 详解
  9. C++ 基础概念、语法和易错点整理
  10. 1036 Boys vs Girls (25 分)_27行代码AC