一、Oracle添加表序列

CREATE SEQUENCE name -- 序列名

INCREMENT BY -- 每次加几个
START WITH -- 从几开始计数
MINVALUE --- 最小值
MAXVALUE --- 最大值
NOCACHE --- 没有缓存
CACHE --- 缓存 默认为20,最少为2个
NOCYCLE --- 一直累加,不循环

例如:

drop  SEQUENCE FILE_SEQ;
CREATE SEQUENCE FILE_SEQ
INCREMENT BY
START WITH
MINVALUE
MAXVALUE
NOCYCLE
CACHE ;

生成后如图:

获取当前序列

select 序列名.currval from dual;  //获取序列的当前值,这个值是可变的。

需要注意的是:

数据库连接成功后,初次执行这句话,会报异常,不能用。

如果不是你的语句单词拼写错误,就是因为没有先执行下边这句sql,

获取下一个序列

select 序列名.nextval from dual 

二、MySql添加表序列

第一步:创建Sequence管理表 sequence

DROP TABLE IF EXISTS sequence;
CREATE TABLE sequence (
name VARCHAR() NOT NULL,
current_value INT NOT NULL,
increment INT NOT NULL DEFAULT ,
PRIMARY KEY (name)
) ENGINE=InnoDB;

第二步:创建取当前值的函数 currval

DROP FUNCTION IF EXISTS currval;
DELIMITER $
CREATE FUNCTION currval (seq_name VARCHAR())
RETURNS INTEGER
LANGUAGE SQL
DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
BEGIN
DECLARE value INTEGER;
SET value = ;
SELECT current_value INTO value
FROM sequence
WHERE name = seq_name;
RETURN value;
END
$
DELIMITER ;

第三步:创建取下一个值的函数 nextval

DROP FUNCTION IF EXISTS nextval;
DELIMITER $
CREATE FUNCTION nextval (seq_name VARCHAR())
RETURNS INTEGER
LANGUAGE SQL
DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
BEGIN
UPDATE sequence
SET current_value = current_value + increment
WHERE name = seq_name;
RETURN currval(seq_name);
END
$
DELIMITER ;

第四步:创建更新当前值的函数 setval

DROP FUNCTION IF EXISTS setval;
DELIMITER $
CREATE FUNCTION setval (seq_name VARCHAR(), value INTEGER)
RETURNS INTEGER
LANGUAGE SQL
DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
BEGIN
UPDATE sequence
SET current_value = value
WHERE name = seq_name;
RETURN currval(seq_name);
END
$
DELIMITER ;

备注:以上sql中DELIMITER与后面的分号有一个空格或者执行会报错 。

测试:

INSERT INTO sequence VALUES ('TestSeq', , );
----添加一个sequence名称和初始值,以及自增幅度 添加一个名为TestSeq 的自增序列 SELECT SETVAL('TestSeq', );
---设置指定sequence的初始值 这里设置TestSeq 的初始值为10 SELECT CURRVAL('TestSeq');
--查询指定sequence的当前值 这里是获取TestSeq当前值 SELECT NEXTVAL('TestSeq');
--查询指定sequence的下一个值 这里是获取TestSeq下一个值

Oracle与Mysql操作表序列的更多相关文章

  1. Oracle与MySQL的区别

    1. Oracle是大型数据库而Mysql是中小型数据库,Oracle市场占有率达40%,Mysql只有20%左右,同时Mysql是开源的而Oracle价格非常高. 2. Oracle支持大并发,大访 ...

  2. oracle转mysql总结(转)

    ares-sdk初始开发测试使用的是oracle数据库,由于宁波通商的特殊需要,必须把数据库环境从oracle转向mysql. 现对转换过程中出现的问题及经验总结如下: 主键生成策略 创建一个专门记录 ...

  3. oracle 转 mysql 最新有效法(转)

    关键字:Oracle 转 MySQL . Oracle TO MySQL 没事试用了一下Navicat家族的新产品Navicat Premium,他集 Oracle.MySQL和PostgreSQL管 ...

  4. 数据库笔试面试题库(Oracle、MySQL等)

    数据库笔试面试题库(Oracle.MySQL等) 版权声明:版权所有,欢迎分享本文,转载请保留出处,否则追究法律责任,谢谢合作. 注:本文将持续更新,可关注作者微信公众号以便获得最新笔试面试资料. ⊙ ...

  5. oracle转mysql总结

    oracle转mysql总结 ares-sdk初始开发测试使用的是oracle数据库,由于宁波通商的特殊需要,必须把数据库环境从oracle转向mysql. 现对转换过程中出现的问题及经验总结如下: ...

  6. oracle 转 mysql 最新有效法

    关键字:Oracle 转 MySQL . Oracle TO MySQL 没事试用了一下Navicat家族的新产品Navicat Premium,他集 Oracle.MySQL和PostgreSQL管 ...

  7. Oracle 和 MySQL的区别(不完整)

    1. Oracle对单双引号要求的很死,一般不准用双引号,不然会报错.MySQL 单双引号都可以. 2. 事务提交方式:Oracle 默认手动提交,MySQL 默认自动提交. 3. 分页:MySQL有 ...

  8. mybatis中oracle转mysql

    刚来公司实习,遇到的第一个任务就是这个,简单记录一下思路过程.人菜的很,没啥参考价值. 测试时: 将现有的oracle库转为mysql: 用的Navicat自带数据传输功能,简单粗暴 出现的问题: 1 ...

  9. 数据库Oracle和MySQL 的不同

    实例区别: MySQL是轻量型数据库,开源免费.Oracle收费,这个不是重点,,重点是它贵. MySQL一个实例可以操作多个库,而Oracle一个实例只能对应一个库. MySQL安装只有300多兆, ...

随机推荐

  1. Python 之 matplotlib (十六)Animation动画【转】

    本文转载自:https://blog.csdn.net/wangsiji_buaa/article/details/80057875 代码:   import matplotlib.pyplot as ...

  2. java jvm内存管理/gc策略/参数设置

    1. JVM内存管理:深入垃圾收集器与内存分配策略 http://www.iteye.com/topic/802638 Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想 ...

  3. Mysql 常用单词

    单词: CRUD:增删改查(create/read/update/delete) create:新增项目 read:查询 update:修改 delete:删除 desc 表名:查看表结构 drop: ...

  4. Oracle递归查询与常用分析函数

    最近学习oracle的一些知识,发现自己sql还是很薄弱,需要继续学习,现在总结一下哈. (1)oracle递归查询  start with ... connect by prior ,至于是否向上查 ...

  5. 嵌套的SQL另外一种写法

    SELECT a.TradeOrderID 二段交易号 , c.TradeOrderID 一段订单号 , a.BaggingDate AS 出库时间 , a.TransportOrderCode AS ...

  6. Hyper:基于Hypervisor的容器化解决方案

    近日,初创公司HyperHQ发布了他们的开源项目Hyper,Hyper是一个可以在hypervisor上运行Docker镜像的引擎,它融合了Docker容器和虚拟机的优点,旨在打造一个性能更好.更安全 ...

  7. JAVAWEB常见易错问题大汇总

    1.如何修改tomcat访问端口? Answer: conf/server.xml 2.如何配置tomcat Manager访问用户? Answer: conf/tomcat-users.xml 主要 ...

  8. ALS算法 (面试准备)

    ALS算法描述: 1.ALS算法用来补全用户评分矩阵.由于用户评分矩阵比较稀疏,将用户评分矩阵进行分解,变成V和U的乘积.通过求得V和U两个小的矩阵来补全用户评分矩阵. 2.ALS算法使用交替最小二乘 ...

  9. SmsUtils 发送短信

    import java.io.InputStream; import java.io.OutputStream; import java.io.OutputStreamWriter; import j ...

  10. 解决Oracle数据库IP地址改变创建数据库的问题

    方案一 查了相关的资料后才知道,只要修改安装Oracle的目录下面的listener.ora和tnsnames.ora里面的内容即可.看图看图  修改什么内容呢?看图看图. 就是HOST地址改一下就可 ...