mysql 创建sequence
Mysql下载安装:http://blog.csdn.net/yuxiangaaaaa/article/details/54018907
mysql不能像db2和Oracle那样直接create sequence 。
MySQL自增长与Oracle序列的区别:
自增长只能用于表中的其中一个字段
自增长只能被分配给固定表的固定的某一字段,不能被多个表共用.
自增长会把一个未指定或NULL值的字段自动填上.
- CREATE TABLE Test(
- id INT NOT NULL AUTO_INCREMENT,
- name VARCHAR(60) NOT NULL,
- PRIMARY KEY (id)
- ) ENGINE=InnoDB;
INSERT INTO Movie (name) VALUES ( 'Liruid' );
Oracle、DB2可以这样
- CREATE TABLE Test(
- id INT NOT NULL,
- name VARCHAR2(60) NOT NULL,
- PRIMARY KEY (id)
- );
- CREATE SEQUENCE TestSeq;
- INSERT INTO Test(id,name,released) VALUES (TestSeq.NEXTVAL,'Liruid');
CREATE TABLEtbl_sequence(seq_name VARCHAR(50) NOT NULL,minvalue INT NOT NULL,maxvalue INT NOT NULL,current_val INT NOT NULL,increment_val INT DEFAULT '1' NOT NULL,PRIMARY KEY (seq_name))ENGINE=MyISAM DEFAULT CHARSET=utf8;
insert into tbl_sequence (seq_name, minvalue, maxvalue, current_val, increment_val) values ('seq_no', 1, 99999999, 1, 1);
创建function _nextval() 用于获取当前序列号
DELIMITER //
create function _nextval(name varchar(50))
returns integer
begin
declare _cur int;
declare _maxvalue int; -- 接收最大值
declare _increment int; -- 接收增长步数
set _increment = (select increment_val from tbl_sequence where seq_name = name);
set _maxvalue = (select maxvalue from tbl_sequence where seq_name = name);
set _cur = (select current_val from tbl_sequence where seq_name = name);
update tbl_sequence -- 更新当前值set current_val = _cur + increment_val where seq_name = name ;
if(_cur + _increment >= _maxvalue) then -- 判断是都达到最大值update tbl_sequence set current_val = minvalue where seq_name = name ;
end if;
return _cur;
end;
//
DELIMITER ;
mysql 创建sequence相关推荐
- mysql实现类似oracle的序列,mysql 创建[序列],功能类似于oracle的序列
参考自菜鸟教程 使用函数创建自增序列管理表(批量使用自增表,设置初始值,自增幅度) 第一步:创建Sequence管理表 sequence DROP TABLE IF EXISTS sequence; ...
- Mysql创建自增序列方案(模拟Oracle序列)
Mysql实现自增序列 mysql自带了自增序列,为了方便通过数据库获取唯一的增长序列满足业务需求,模拟oracle序列完成序列获取方案:为了达到oracle序列的效果,在mysql创建函数来完成模拟 ...
- oracle与mysql创建表时的区别
oracle创建表时,不支持在建表时同时增加字段注释.故采用以下方式: #创建表 CREATE TABLE predict_data as (id integer NOT NULL, uid varc ...
- MySQL留言板怎么创建_如何使用JSP+MySQL创建留言本(三)
如何使用JSP+MySQL创建留言本(三)推荐查看本文HTML版本 下面我们开始建立留言的页面! import ="java.util.*" import ="jav ...
- mysql创建库几种方法_MySQL创建数据库的两种方法
本文为大家分享了两种mysql创建数据库的方法,供大家参考,具体内容如下 第一种方法:使用 mysqladmin 创建数据库使用普通用户,你可能需要特定的权限来创建或者删除 mysql 数据库. 所以 ...
- centos 7 mysql 创建用户_【CentOS 7MySQL常用操作4】,MySQL创建用户以及授权#180116
hellopasswd MySQL创建用户以及授权 grant all on . to 'user1' identified by 'passwd'; grant SELECT,UPDATE,INSE ...
- MySQL 创建数据表
MySQL 创建数据表 创建MySQL数据表的SQL语法: CREATE TABLE table_name (column_name column_type); 例如,我们在 PENGKE 数据库中创 ...
- mysql新建备份在哪里_navicat for MySQL创建备份计划的详细流程
刚入手navicat for MySQL的用户,不清楚怎么创建备份计划?现在就跟着小编一起来看一下navicat for MySQL创建备份计划的详细流程吧. navicat for MySQL创建备 ...
- MySQL创建数据库时指定编码和用户授权
为什么80%的码农都做不了架构师?>>> MySQL创建数据库时指定编码和用户授权 转载于:https://my.oschina.net/michao/blog/2989144
最新文章
- windows下编译pcl-master源码(带GPU)
- 游戏开发:js实现简单的板球游戏
- Ubuntu下嵌入式Qt开发环境配置全攻略
- 中国首个海底数据中心样机测试数据揭晓,达世界先进能效水平
- @Resource,@Autowired,@Inject3种注入方式详解
- TCP、UDP套接字的数据传输
- 让VMware由bios启动方式,转而支持EFI启动方式
- 《零基础入门学习Python》学习过程笔记【016列表,元组,字符串的转化及共用技巧】...
- php sorcket_深入浅出讲解:php的socket通信
- function core.php is missing,PHP代码
- 美国密歇根州立大学计算机专业,密歇根州立大学计算机科学硕士排名第66(2020年TFE Times排名)...
- ERD Online介绍
- cadence软件安装教程
- 这届90后女博士,对30岁不屑一顾
- python中简述对象和类的关系_Python笔记-习题42 对象、类及从属关系
- 英文学习20180321
- 《ERROR: MobSDK已停止支持非严格模式版本,请按上面编译告示接入合规版本》
- 如何基于Arduino开发板使用APDS9960 RGB和手势传感器
- 链接脚本(Linker Scripts)语法和规则解析(翻译自官方手册)
- 软件工程 -- E-R图