mysql中怎么生成全局唯一序列

MySQL中怎么生成全局唯一序列,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

創(chuàng)新互聯(lián)公司:成立于2013年為各行業(yè)開(kāi)拓出企業(yè)自己的“網(wǎng)站建設(shè)”服務(wù),為1000多家公司企業(yè)提供了專業(yè)的成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)和網(wǎng)站推廣服務(wù), 按需定制由設(shè)計(jì)師親自精心設(shè)計(jì),設(shè)計(jì)的效果完全按照客戶的要求,并適當(dāng)?shù)奶岢龊侠淼慕ㄗh,擁有的視覺(jué)效果,策劃師分析客戶的同行競(jìng)爭(zhēng)對(duì)手,根據(jù)客戶的實(shí)際情況給出合理的網(wǎng)站構(gòu)架,制作客戶同行業(yè)具有領(lǐng)先地位的。

  • 業(yè)務(wù)場(chǎng)景:訂單系統(tǒng)中生成訂單號(hào),按照每天從1開(kāi)始生成

  • 大致思路是:將生成序列的步驟放到mysql的函數(shù)中實(shí)現(xiàn),java中負(fù)責(zé)調(diào)用mysql函數(shù)獲取序列,代碼中調(diào)用時(shí)需要保證同一時(shí)間只有一次調(diào)用,所以代碼中首先會(huì)將獲取序列服務(wù)類定義成單利的服務(wù)對(duì)象,方法中采用同步關(guān)鍵字。使用jetty測(cè)試工具,在并發(fā)一萬(wàn)情況下調(diào)用改序列生成的函數(shù)無(wú)問(wèn)題,無(wú)重號(hào)。

  • 參考代碼

  • Mysql腳本


DROP TABLE IF EXISTS tbl_sequence; CREATE TABLE tbl_sequence ( name varchar(40) CHARACTER SET utf8 NOT NULL COMMENT '序列名稱', current_value int(15) NOT NULL COMMENT '當(dāng)前值' ) ENGINE=InnoDB DEFAULT CHARSET=latin1; INSERT INTO tbl_sequence VALUES ('test', '38');

set global log_bin_trust_function_creators=1;

DELIMITER $$
DROP FUNCTION IF EXISTS currval$$
CREATE FUNCTION currval(seq_name VARCHAR(50)) RETURNS varchar(40) BEGIN DECLARE valuep VARCHAR(40); if 0=(SELECT count(name) FROM tbl_sequence WHERE NAME=seq_name) then INSERT INTO tbl_sequence (name, current_value) VALUES (seq_name, '1'); end if; SELECT current_value INTO valuep FROM tbl_sequence WHERE NAME = seq_name; UPDATE tbl_sequence SET current_value = current_value + 1 WHERE NAME = seq_name; RETURN valuep; END $$
DELIMITER;


  • Java代碼


a) Sping中service使用采用單例模式 @Service("serialNumberUtil") @Scope("singleton") public class SerialNumberUtil {

b) 獲取方法中采用同步關(guān)鍵字 public synchronized String getOrderNumber(String pix,String dataStr) { return sequenceDao.getOrderNumber(pix,dataStr); }

看完上述內(nèi)容,你們掌握mysql中怎么生成全局唯一序列的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

本文名稱:mysql中怎么生成全局唯一序列
鏈接地址:http://bm7419.com/article48/geiphp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷推廣、虛擬主機(jī)、網(wǎng)站導(dǎo)航品牌網(wǎng)站設(shè)計(jì)、ChatGPT、定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

營(yíng)銷型網(wǎng)站建設(shè)