实现currval的模拟方案 ? 1 2 3 4 5 6 7 8 9 10 11 [sql] create function currval(v_seq_name VARCHAR (50)) returns integer begin declare value integer ; set value = 0; select current_value into value from sequence where seq_name = v_seq_name; return value; end ;
[sql] 函数使用为:select currval('MovieSeq'); 实现nextval的模拟方案 ? 1 2 3 4 5 6 7 8 9 [sql] create function nextval (v_seq_name VARCHAR (50)) return integer begin update sequence set current_val = current_val + increment_val where seq_name = v_seq_name; return currval(v_seq_name); end ;
[sql] 函数使用为:select nextval('MovieSeq'); 增加设置值的函数 ? 1 2 3 4 5 6 7 8 [sql] create function setval(v_seq_name VARCHAR (50), v_new_val INTEGER ) returns integer begin update sequence set current_val = v_new_val where seq_name = v_seq_name; return currval(seq_name);
同理,可以增加对步长操作的函数,在此不再叙述。 注意语法,数据库字段要对应上 use bvboms; DELIMITER $$ create function setval(v_seq_name VARCHAR(50), v_new_val INTEGER) returns integer begin update sequence set current_val = v_new_val where seq_name = v_seq_name; return currval(seq_name); end $$ DELIMITER $$
转载于:https://www.cnblogs.com/goto/p/4126498.html
相关资源:MySQL实现类似Oracle序列的方案