Oracle 、 Mysql、Guass 的 sequence

一、Oracle 本身存在 sequence 实体,可以直接创建,如:

CREATE sequence xxx_SEQ

minvalue 1

maxvalue 999999

start with 1

increment by 1

cache 20

cycle;

执行语句得到序列的下一个值:

SELECT xxx_SEQ.NEXTVAL FROM DUAL

二、MYSQL ,不存在 sequence 。 需要仿照,

1、建立一个自增表

CREATE TABLE xxx_SEQ_table (
id INT(11) NOT NULL AUTO_INCREMENT,

PRIMARY KEY (id)

) ;

2、建立一个函数

CREATE FUNCTION xxx_SEQ_nextval() RETURNS INT

BEGIN

INSERT INTO xxx_SEQ_table (id) VALUES (NULL);

RETURN LAST_INSERT_ID();

END;

3、执行语句得到序列的下一个值:

SELECT xxx_SEQ_nextval()

三、Guass,创建 sequence 与 Oracle 一样

CREATE sequence xxx_SEQ

minvalue 1

maxvalue 999999

start with 1

increment by 1

cache 20

cycle;

执行语句得到序列的下一个值:

SELECT xxx_SEQ.NEXTVAL

相关推荐
剑之所向3 分钟前
.NET 官方`System.Threading.Channels`
前端·javascript·数据库
词却31 分钟前
数据库基础:DQL 数据查询语言
数据库·oracle
昌原的儿子LEO2 小时前
Linux IO多路复用与SQLite数据库核心知识点总结
linux·数据库·oracle
山岚的运维笔记3 小时前
mysql 专业笔记 -- 第 8 章:使用变量
运维·数据库·笔记·后端·学习·mysql·dba
聚美智数3 小时前
网安查询-备案查询-网络安全查询API接口介绍
网络·数据库·web安全
坐吃山猪3 小时前
【多线程】Semaphore使用
java·数据库·oracle·多线程
数智启示录3 小时前
PostgreSQL 内存调优实战(第 12 篇):work_mem 只调大 64 倍,峰值为什么远不止 64 倍
运维·数据库·经验分享·postgresql·面试
姜太小白4 小时前
【Oracle】记排查sh脚本调用SQL执行卡顿的排查总结
数据库·sql·oracle
bgy66665 小时前
MariaDB 数据库 基础详解
数据库·mariadb
自动化监测Learner5 小时前
QGIS 把geojson数据导入 PostgreSQL/PostGIS 的完整流程
数据库·postgresql