热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

Oracle之序列(主键自增)

1.在Oracle中完成自动增长的功能,则只能依靠序列完成,所有的自动增长操作,需要用户收工完成处理。序列的创建格式:[sql]CREATESEQUENCEsequence[INCREMENTBYn][STARTWITHn][{MAXVALUEn|...SyntaxHighlig

1.
  在Oracle中完成自动增长的功能,则只能依靠序列完成,所有的自动增长操作,需要用户收工完成处理。
序列的创建格式:
[sql] 
CREATE SEQUENCE sequence  
[INCREMENT BY n][STARTWITH n]  
[{MAXVALUE n | NOMAXVALUE}]  
[{MINVALUE n | NOMINVALUE}]  
[{CYCLE|NOCYCLE}]  
[{CACHE n|NOCACHE}] ;  
  www.2cto.com  
范例:创建一个myseq的序列,验证自动增长的操作。
[sql] 
CREATE SEQUENCE myseq ;  
 
序列创建完成之后,所有的自动增长应该由用户自己处理,所以在序列中提供了一下的两种操作:
nextVal : 学的序列的下一个内容
currVal : 去的序列的当前内容
范例:建立一张以验证序列的操作
[sql] 
CREATE TABLE testseq(  
next NUMBER ,  
curr NUMBER  
) ;  
 
现在向表中添加数据,添加数据的时候需要手工使用序列
范例:使用序列
[sql] 
INSERT INTO testseq(next,curr) VALUES (myseq.nextval,myseq.currval) ;  
  www.2cto.com  
该操作执行5次。
查询testseq表:
[sql] 
SELECT * FROM testseq ;  
 
可以发现,newVal的内容是种在进行自动增长的操作,而currVal使用取出当前操作的序列结果。
也就是说,现在这种序列,每次增长的幅度是1,也可以修改序列的增长幅度。
每次的增长幅度 INCREMENT BY 长度
范例:
删除序列:
[sql] 
DROP SEQUENCE myseq ;  
重新创建序列:
[sql] 
CREATE SEQUENCE myseq INCREMENT BY 2;  
 
再创建表,进行test:
[sql] 
DROP TABLE testseq ;  
CREATE TABLE testseq(  
next NUMBER ,  
curr NUMBER  
) ;  
  www.2cto.com  
插入5个数据,测试:
[sql] 
INSERT INTO testseq(next,curr) VALUES (myseq.nextval,myseq.currval) ;  
 
默认情况下,序列从1开始,那么也可以使用 START WITH 指定其开始位置。
[sql] 
DROP SEQUENCE myseq ;  
CREATE SEQUENCE myseq INCREMENT BY 2 STARTWITH 10 ;--从10开始  
 
创建一个序列,让其取固定值在1、3、5、7、9,循环序列。
[sql] 
DROP SEQUENCE myseq ;  
CREATE SEQUENCE myseq MAXVALUE 10 INCREMENT BY 2 START WITH 1  
CACHE 2 CYCLE;  
 

推荐阅读
  • 本文介绍了如何使用PHP进行SQL Server 2010数据库的分页查询,包括设置每页显示的记录数和当前页码,并通过SQL语句实现数据的分页展示。 ... [详细]
  • 本文旨在为初学者提供一个详细的指南,从零开始学习如何使用 ASP.NET MVC5 和 Entity Framework 6 (EF6) 搭建项目。通过逐步指导,帮助读者理解 MVC 架构的核心概念,并掌握基本的操作方法。 ... [详细]
  • UMPlatForm.NET 5.1 版本数据字典管理功能解析
    本文介绍了 UMPlatForm.NET 5.1 版本中的数据字典管理模块,探讨了该模块如何支持平台的数据共享与管理,以及如何通过用户和角色权限来增强系统的安全性。 ... [详细]
  • 本文探讨了SQLAlchemy ORM框架中如何利用外键和关系(relationship)来建立表间联系,简化复杂的查询操作。通过示例代码详细解释了relationship的定义、使用方法及其与外键的相互作用。 ... [详细]
  • 本文介绍了Android SDK Platform Tools的核心功能及其重要性。作为Android SDK的一个关键组成部分,Platform Tools提供了开发者与Android设备进行交互所需的各种工具。 ... [详细]
  • 本文档提供了详细的MySQL安装步骤,包括解压安装文件、选择安装类型、配置MySQL服务以及设置管理员密码等关键环节,帮助用户顺利完成MySQL的安装。 ... [详细]
  • 本文探讨了HTA(HTML Application)环境中HTML5 IndexedDB的可用性问题,并提供了一种替代方案,即通过使用COM ActiveX对象来实现数据存储功能。 ... [详细]
  • 本文介绍了多种将多行数据合并为单行的方法,包括使用动态SQL、函数、CTE等技术,适用于不同的SQL Server版本。 ... [详细]
  • SQLite是一种轻量级的关系型数据库管理系统,尽管体积小巧,却能支持高达2TB的数据库容量,每个数据库以单个文件形式存储。本文将详细介绍SQLite在Android开发中的应用,包括其数据存储机制、事务处理方式及数据类型的动态特性。 ... [详细]
  • Navicat Premium中MySQL用户管理:创建新用户及高级设置
    本文作为Navicat Premium用户管理系列的第二部分,主要介绍如何创建新的MySQL用户,包括设置基本账户信息、密码策略、账户限制以及SSL配置等。 ... [详细]
  • 帝国cms各数据表有什么用
    CMS教程|帝国CMS帝国cmsCMS教程-帝国CMS精易编程助手源码,ubuntu桥接设置,500错误是tomcat吗,爬虫c原理,php会话包括什么,营销seo关键词优化一般多 ... [详细]
  • 本文介绍了多种Eclipse插件,包括XML Schema Infoset Model (XSD)、Graphical Editing Framework (GEF)、Eclipse Modeling Framework (EMF)等,涵盖了从Web开发到图形界面编辑的多个方面。 ... [详细]
  • 本文介绍如何在SQL Server中利用WITH子句和窗口函数ROW_NUMBER()来查询每个类型下的最新数据行。示例包括表结构、数据插入以及最终的查询语句。 ... [详细]
  • 深入浅出:Hadoop架构详解
    Hadoop作为大数据处理的核心技术,包含了一系列组件如HDFS(分布式文件系统)、YARN(资源管理框架)和MapReduce(并行计算模型)。本文将通过实例解析Hadoop的工作原理及其优势。 ... [详细]
  • 对于初次购买阿里云服务器的新手用户来说,如何高效地利用服务器资源并成功部署网站是一个重要的课题。本文将详细指导您完成从购买服务器到网站上线的六个关键步骤。 ... [详细]
author-avatar
她能让你微笑衙
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有