實際情況:
在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)建多張表!