function.sql 1.4 KB

1234567891011121314151617181920212223242526272829
  1. CREATE TABLE `plat_sequence` (
  2. `name` varchar(32) NOT NULL COMMENT '序列编码',
  3. `current_value` int(11) DEFAULT 1000 COMMENT '当前值/初始值',
  4. `increment` int(11) DEFAULT NULL COMMENT '步增值',
  5. `remark` text DEFAULT NULL COMMENT '备注',
  6. `created_by` int(11) NOT NULL COMMENT '创建者',
  7. `created_name` varchar(90) NOT NULL COMMENT '创建人',
  8. `created_time` datetime NOT NULL COMMENT '创建时间',
  9. `updated_by` int(11) DEFAULT NULL COMMENT '更新者',
  10. `updated_name` varchar(90) DEFAULT NULL COMMENT '更新人',
  11. `updated_time` datetime DEFAULT NULL COMMENT '更新时间',
  12. `deleted_time` datetime DEFAULT NULL COMMENT '删除时间',
  13. PRIMARY KEY (`name`) USING BTREE
  14. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '序列信息表' ;
  15. DROP FUNCTION IF EXISTS nextval;
  16. DELIMITER $
  17. CREATE FUNCTION nextval (seq_name VARCHAR(50)) RETURNS INTEGER LANGUAGE SQL DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER COMMENT '' BEGIN
  18. UPDATE plat_sequence
  19. SET current_value = current_value + increment
  20. WHERE name = seq_name;
  21. RETURN currval(seq_name);
  22. END $
  23. DELIMITER ;
  24. -- INSERT INTO plat_sequence VALUES ('customer_code', 1000, 1, '', 1000, '系统管理员', '2023-02-09 10:27:42', null, null, null, null);
  25. -- INSERT INTO plat_sequence VALUES ('contract_code', 1000, 1, '', 1000, '系统管理员', '2023-02-09 10:27:42', null, null, null, null);
  26. -- select `nextval`('customer_code');