mysql 兼容序列的解決方案

實(shí)際情況:

在oracle中的獲取序列的邏輯,實(shí)際上調(diào)用了一個(gè)方法來(lái)獲取一個(gè)唯一id,
但是為了在不修改代碼的基礎(chǔ)上,能夠兼容orcale和mysql,所以才提出了下面的解決方案!
cobar實(shí)際調(diào)用的sql語(yǔ)句
==> Preparing: select seq_fun('SEQ_T_APIKEY')


思路

在mysql中創(chuàng)建一個(gè)seq_fun的方法,同時(shí)創(chuàng)建一張表,利用mysql的自增長(zhǎng)生成SEQ_T_APIKEY,語(yǔ)句如下:

CREATE FUNCTION `seq_fun`(tb_name VARCHAR(20)) RETURNS BIGINT(20)
    READS SQL DATA
BEGIN
      CASE
      WHEN tb_name = 'SEQ_T_APIKEY' THEN 
      INSERT myseq VALUES(NULL); DELETE FROM myseq; RETURN LAST_INSERT_ID();
      END CASE;
END$$

缺點(diǎn)

如果要想將序列ID的生成分開,需要?jiǎng)?chuàng)建多張表!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容