MySql序列實現
小結一下:mysql 實現 oracle中序列的功能
建立一張用於記錄序列值的表:
drop table if exists dpf_risk.seq_record;
create table dpf_risk.seq_record
(
seq_name varchar(100) comment '序列名'
,val int(11) not null default 0 comment '序列值'
,primary key (seq_name)
) comment '此表用於記錄序列的值'
;
/*初始化序列的其實值:insert into dpf_risk.seq_record(seq_name,val) values('rdm_lkp_uid_rid_mobile_emal_uid',989719);
update dpf_risk.seq_record
set val = 989719
*/
建立取序列值的函式 (此為 next_val()的實現,current_val()同理,步長可以自己定義,很方便)
drop function if exists dpf_risk.seq;
DELIMITER $$
create function dpf_risk.seq(seq_name varchar(100)) returns int(11)
not DETERMINISTIC
begin
declare res int default 0;
update dpf_risk.seq_record set val = last_insert_id(val+1) where seq_name = seq_name ;
select last_insert_id(val) into res from dpf_risk.seq_record where seq_name = seq_name ;
return res;
end$$
DELIMITER ;
測試一下:
mysql> select dpf_risk.seq('rdm_lkp_uid_rid_mobile_emal_uid');
+-------------------------------------------------+
| dpf_risk.seq('rdm_lkp_uid_rid_mobile_emal_uid') |
+-------------------------------------------------+
| 989721 |
+-------------------------------------------------+
1 row in set (0.00 sec)
mysql> select dpf_risk.seq('rdm_lkp_uid_rid_mobile_emal_uid');
+-------------------------------------------------+
| dpf_risk.seq('rdm_lkp_uid_rid_mobile_emal_uid') |
+-------------------------------------------------+
| 989722 |
+-------------------------------------------------+
1 row in set (0.00 sec)
功能實現!
建立一張用於記錄序列值的表:
drop table if exists dpf_risk.seq_record;
create table dpf_risk.seq_record
(
seq_name varchar(100) comment '序列名'
,val int(11) not null default 0 comment '序列值'
,primary key (seq_name)
) comment '此表用於記錄序列的值'
;
/*初始化序列的其實值:insert into dpf_risk.seq_record(seq_name,val) values('rdm_lkp_uid_rid_mobile_emal_uid',989719);
update dpf_risk.seq_record
set val = 989719
*/
建立取序列值的函式 (此為 next_val()的實現,current_val()同理,步長可以自己定義,很方便)
drop function if exists dpf_risk.seq;
DELIMITER $$
create function dpf_risk.seq(seq_name varchar(100)) returns int(11)
not DETERMINISTIC
begin
declare res int default 0;
update dpf_risk.seq_record set val = last_insert_id(val+1) where seq_name = seq_name ;
select last_insert_id(val) into res from dpf_risk.seq_record where seq_name = seq_name ;
return res;
end$$
DELIMITER ;
測試一下:
mysql> select dpf_risk.seq('rdm_lkp_uid_rid_mobile_emal_uid');
+-------------------------------------------------+
| dpf_risk.seq('rdm_lkp_uid_rid_mobile_emal_uid') |
+-------------------------------------------------+
| 989721 |
+-------------------------------------------------+
1 row in set (0.00 sec)
mysql> select dpf_risk.seq('rdm_lkp_uid_rid_mobile_emal_uid');
+-------------------------------------------------+
| dpf_risk.seq('rdm_lkp_uid_rid_mobile_emal_uid') |
+-------------------------------------------------+
| 989722 |
+-------------------------------------------------+
1 row in set (0.00 sec)
功能實現!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28929558/viewspace-1320370/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Mysql實現自增長編號,日期+序列MySql
- mysql使用自定義序列實現row_number功能MySql
- JS實現序列請求JS
- 一句話實現MySQL庫中的有序列舉條件分組MySql
- 什麼是Java序列化?如何實現序列化?Java
- java 實現 最長公共子序列Java
- 最長遞增子序列-Java 實現Java
- Oracle實現自增列(序列+觸發器實現、Identity Columns新特性、序列作為預設值)Oracle觸發器IDE
- mysql實現sequenceMySql
- golang實現php裡的serialize()和unserialize()序列和反序列方法GolangPHP
- 什麼是Java序列化,如何實現java序列化Java
- asp.net JavaScriptSerializer實現序列化和反序列化ASP.NETJavaScript
- JS原生實現表單序列化JS
- Java中使用FlatBuffer實現序列化Java
- Java中使用FlatBuffers實現序列化Java
- 基於 “typesys” 實現序列指令碼框架指令碼框架
- MySQL——索引實現原理MySql索引
- mysql實現nextVal功能MySql
- MySQL實現Split用法MySql
- MySQL MVCC實現原理MySqlMVC
- 使用Python實現深度學習模型:序列到序列模型(Seq2Seq)Python深度學習模型
- 精讀《用 Reduce 實現 Promise 序列執行》Promise
- 原生JS實現表單序列化serialize()JS
- 原生實現jquery param序列化引數jQuery
- Jackson 庫中@JsonProperty和@JsonAlias註解實現序列化反序列化JSON
- 序列化和反序列化的底層實現原理是什麼?
- MySQL分析函式實現MySql函式
- MySQL實現分組排序MySql排序
- MySQL排名函式實現MySql函式
- Mysql表分割槽實現MySql
- mysql索引底層實現MySql索引
- MySQL事務實現原理MySql
- 使用 Apache Fury 實現極快的序列化Apache
- 「crudapi」零程式碼實現訂單序列號SequenceAPI
- 利用Jackson序列化實現資料脫敏
- MySQL怎麼實現主從同步和Django實現MySQL讀寫分離MySql主從同步Django
- Java:對一個物件序列化和反序列化的簡單實現Java物件
- 13、MySQL Case-MySQL分析函式實現MySql函式
- MySQL高可用架構:mysql+keepalived實現MySql架構