Advertisement
Guest User

nextval

a guest
Sep 6th, 2019
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 0.63 KB | None | 0 0
  1. CREATE DEFINER=`abac`@`%` FUNCTION `nextval`(
  2.     `seq_name` varchar(100)
  3. )
  4. RETURNS bigint(20)
  5. LANGUAGE SQL
  6. NOT DETERMINISTIC
  7. CONTAINS SQL
  8. SQL SECURITY DEFINER
  9. COMMENT ''
  10. BEGIN
  11.  
  12. DECLARE cur_val bigint(20);
  13. SELECT
  14. sequence_cur_value INTO cur_val
  15.  
  16. FROM
  17.  
  18. sequence_data
  19.  
  20. WHERE
  21. sequence_name = seq_name
  22. ;
  23.  
  24. IF cur_val IS NOT NULL THEN
  25. UPDATE
  26. sequence_data
  27. SET
  28. sequence_cur_value = IF (
  29. (sequence_cur_value + sequence_increment) > sequence_max_value,
  30. IF (
  31. sequence_cycle = TRUE,
  32. sequence_min_value,
  33. NULL
  34. ),
  35. sequence_cur_value + sequence_increment
  36. )
  37.  
  38. wHERE
  39.  
  40. sequence_name = seq_name
  41. ;
  42.  
  43. END IF;
  44. RETURN cur_val;
  45.  
  46. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement