mysql 兼容序列的解決方案

實際情況:

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


思路

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

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$$

缺點

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容