首页 > 数据库 >mysql实现oracle序列_mysql实现oracle序列

mysql实现oracle序列_mysql实现oracle序列

时间:2022-09-21 11:13:10浏览次数:72  
标签:name val sequence current 序列 mysql oracle seq

mysql实现oracle序列的方案

1.建表,表结构为:

drop table if exists sequence;

create table sequence (

seq_name VARCHAR(50) NOT NULL, -- 序列名称

current_val INT NOT NULL, --当前值

increment_val INT NOT NULL DEFAULT 1, --步长(跨度)

PRIMARY KEY (seq_name)

);

2.实现currval的模拟方案

create function currval(v_seq_name VARCHAR(50))

returns integer

begin

declare value integer;

set value = 0;

select current_val into value

from sequence

where seq_name = v_seq_name;

return value;

end;

3.实现nextval的模拟方案

create function nextval (v_seq_name VARCHAR(50))

returns integer

begin

update sequence

set current_val = current_val + increment_val

where seq_name = v_seq_name;

return currval(v_seq_name);

end;

4.增加设置值的函数

create function setval(v_seq_name VARCHAR(50), v_new_val INTEGER)

returns integer

begin

update sequence

set current_val = v_new_val

where seq_name = v_seq_name;

return currval(seq_name);

end;

5.实例

insert into sequence (seq_name, current_val) values ('seq1', 100);

#获取当前值

select currval('seq1');

#获取下一个值

select nextval('seq1');


————————————————
版权声明:本文为CSDN博主「Jack Weavi」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_32199769/article/details/113305671

标签:name,val,sequence,current,序列,mysql,oracle,seq
From: https://www.cnblogs.com/javalinux/p/16714867.html

相关文章

  • oracle 数据回滚
    selectto_char(sysdate,'yyyy-mm-ddhh24:mi:ss')fromdual;select*fromt_payment_detail_cjasoftimestampto_timestamp('2022-09-2016:30:12','yyyy-mm-ddhh2......
  • mysql安装和连接Navicat
    mysql安装可参考下面博客,按照步骤可以走通,实测有效,网上其他的乱七八糟的,诶https://www.cnblogs.com/itcui/p/15511683.html安装结束后,由于我安装的是8.0版本,在连接Navica......
  • Linux安装Oracle11g
    一、准备工作1、下载Oracle安装包,通过ftp工具上传到linux服务器并解压由于Oracle官网上无法下载Oracle数据库之前的版本,可以在OracleSoftwareDeliveryCloud里搜索or......
  • MySQL维护之存储引擎(表类型)
    MySQL中的数据用各种不同的技术存储在文件(或内存)中。在MySQL架构原理之体系架构-池塘里洗澡的鸭子-博客园(cnblogs.com)中可以看到其在MySQL中的第3层。官......
  • 一条sql了解MYSQL的架构设计
    1前言对于一个服务端开发来说MYSQL可能是他使用最熟悉的数据库工具,然而,大部分的Java工程师对MySQL的了解和掌握程度,大致就停留在这么一个阶段:它可以建库、建表、建索......
  • Node.js(七)MySql+ajax
    Api.jsconstexpress=require("express");constrouter=express.Router();constmysql=require('mysql')constmysqlutil=require("./mysql");letpool=mysql.cre......
  • oracle权限类型大全
    ListingsofSystemandObjectPrivilegesSystemPrivilegeNameOperationsAuthorizedAdvisorFrameworkPrivileges: Alloftheadvisorframeworkprivilege......
  • Docker安装Oracle数据库
    Docker安装Oracle数据库一、准备工作如果没有安装docker:请参考:https://www.cnblogs.com/zhaostudy/p/16364138.html1.安装docker-ce(有docker老版本也可以直接使用)安......
  • MySQL数据库笔记
    1.操作数据库1.1创建数据库createdatabase数据库名如果想数据库没有就创建,有就不创建可以执行这句话sqlcreatedatabaseifnotexists数据库名1.2删除数据库......
  • form表单内容序列化的两种方法
    form表单内容序列化form表单自带两种方法serialize()方法和serialize()方法1.serialize()方法描述:序列化表单内容为字符串(不包括文件),用于Ajax请求。格式:vardata=......