實(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)建多張表!