zoukankan      html  css  js  c++  java
  • MySQL 通过事件备份数据库表-包含数据、结构、主键、索引

    -- 说明:
    -- 1. 仅复制表结构:create table my_table_copy2 like my_table;
    -- 2. 复制表结构和数据:create table my_table_copy1 select * from my_table; -- 只是按select语句执行的结果新建表,并不会复制表的主键、索引等信息
    -- 3. 完全复制表:
    -- create table my_table_copy2 like my_table;
    -- insert into my_table_copy2 select * from my_table;
    -- 4. 复制表,同时重新定义字段名:
    -- create table my_table_copy3
    -- select id,username yhm,realname xm,email dzyj,address dz from my_table;
    -- 5. 复制表,同时定义字段信息:
    -- create table my_table_copy4
    -- (
    -- id INTEGER not null auto_increment PRIMARY KEY
    -- )
    -- select * from my_table;
    -- 打开查询执行 SET GLOBAL event_scheduler = ON; 开启事件

    -- 查询事件状态:show variables like "event_scheduler" ;

    BEGIN

    -- 时间格式Format
    set @v_bak = (DATE_FORMAT(CURRENT_DATE(),'%Y%m%d'));
    -- 字符串拼接
    SET @newTableName = CONCAT('expresspackage_',@v_bak,'bak');

    -- 1.创建备份表
    SET @sql_stmt_ins1=CONCAT('CREATE TABLE ', @newTableName , ' like expresspackage;');
    -- 1.3预处理需要执行的动态SQL
    PREPARE stmt_ins1 FROM @sql_stmt_ins1;
    -- 执行SQL语句
    EXECUTE stmt_ins1;
    -- 释放掉预处理段
    DEALLOCATE PREPARE stmt_ins1;

    -- 1.2备份表数据
    SET @sql_stmt_ins1s=CONCAT('insert into ', @newTableName, ' select * from expresspackage;');
    -- 1.3预处理需要执行的动态SQL
    PREPARE stmt_ins1s FROM @sql_stmt_ins1s;
    -- 执行SQL语句
    EXECUTE stmt_ins1s;
    -- 释放掉预处理段
    DEALLOCATE PREPARE stmt_ins1s;

    -- 更新表内某个字段
    update expresspackage
    set CreateTime = REPLACE(CreateTime,DATE_FORMAT(DATE_SUB(CURRENT_DATE(),INTERVAL 1 DAY),'%Y-%m-%d'),DATE_FORMAT(CURRENT_DATE(),'%Y-%m-%d')) WHERE ID in
    (SELECT ID from
    (
    SELECT id from expresspackage where CreateTime < DATE_FORMAT(CURRENT_DATE(),'%Y-%m-%d')
    ) as a
    )
    ;

    END

  • 相关阅读:
    mysql 判断时间 语法
    SVN权限配置
    redis 安装 配置 及启动
    SVN搭建(linux 7)
    Maven 逆向工程
    git 设置只输入一次用户名和密码
    java环境变量配置(win7)
    Navicat Premium 12 激活
    linux 常用命令
    MVC的验证(模型注解和非侵入式脚本的结合使用)
  • 原文地址:https://www.cnblogs.com/wa502/p/11971522.html
Copyright © 2011-2022 走看看