Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DELIMITER |
- CREATE PROCEDURE move_old_to_new(old INT, new INT)
- proc_label:BEGIN
- DECLARE v_min INT;
- DECLARE v_max INT;
- DECLARE v_gap INT;
- DECLARE v_inc INT;
- IF old = new OR old IS NULL OR new IS NULL THEN
- LEAVE proc_label;
- END IF;
- SET v_min = old;
- IF new < old THEN
- SET v_min = new;
- END IF;
- SET v_max = old;
- IF new > old THEN
- SET v_max = new;
- END IF;
- SET v_gap = v_max - v_min + 1;
- SET v_inc = (old - new) / (v_max - v_min);
- UPDATE test
- SET order_no = v_min + MOD(order_no - v_min + v_inc + v_gap, v_gap)
- WHERE order_no BETWEEN v_min AND v_max;
- END;
- |
- DELIMETER ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement