zoukankan      html  css  js  c++  java
  • Mysql 进行sequence的新建,同时建立计划每日重置。

    DROP TABLE IF EXISTS sequence;
    CREATE TABLE sequence (
    name VARCHAR(50) NOT NULL,
    current_value INT NOT NULL,
    increment INT NOT NULL DEFAULT 1,
    PRIMARY KEY (name)
    ) ENGINE=InnoDB;

    DROP FUNCTION IF EXISTS currval;
    DELIMITER $
    CREATE FUNCTION currval (seq_name VARCHAR(50))
    RETURNS INTEGER
    LANGUAGE SQL
    DETERMINISTIC
    CONTAINS SQL
    SQL SECURITY DEFINER
    COMMENT ''
    BEGIN
    DECLARE value INTEGER;
    SET value = 0;
    SELECT current_value INTO value
    FROM sequence
    WHERE name = seq_name;
    RETURN value;
    END
    $
    DELIMITER ;

    DROP FUNCTION IF EXISTS nextval;
    DELIMITER $
    CREATE FUNCTION nextval (seq_name VARCHAR(50))
    RETURNS INTEGER
    LANGUAGE SQL
    DETERMINISTIC
    CONTAINS SQL
    SQL SECURITY DEFINER
    COMMENT ''
    BEGIN
    UPDATE sequence
    SET current_value = current_value + increment
    WHERE name = seq_name;
    RETURN currval(seq_name);
    END
    $
    DELIMITER ;

    DROP FUNCTION IF EXISTS setval;
    DELIMITER $
    CREATE FUNCTION setval (seq_name VARCHAR(50), value INTEGER)
    RETURNS INTEGER
    LANGUAGE SQL
    DETERMINISTIC
    CONTAINS SQL
    SQL SECURITY DEFINER
    COMMENT ''
    BEGIN
    UPDATE sequence
    SET current_value = value
    WHERE name = seq_name;
    RETURN currval(seq_name);
    END
    $
    DELIMITER ;

    CREATE EVENT resetSeq
    ON SCHEDULE EVERY 1 DAY STARTS DATE_ADD(DATE_ADD(CURDATE(), INTERVAL 1 DAY), INTERVAL 1 HOUR)
    ON COMPLETION PRESERVE ENABLE
    DO
    UPDATE sequence set current_value = 1;

  • 相关阅读:
    jqGrid获取选中行id集合
    jqGrid通过行id获取行对象
    【链接】Eclipse中快速打开文件所在的文件夹位置
    springboot下html的js中使用shiro标签功能
    从一次渗透谈到linux如何反弹shell
    安全建设的几个阶段
    BluePrint和ORM
    flask框架实战项目架构
    配置Python实战开发环境
    python 进行抓包嗅探
  • 原文地址:https://www.cnblogs.com/weijieyun/p/6051494.html
Copyright © 2011-2022 走看看