首页 > 数据库 >数据库存储过程-生产实践

数据库存储过程-生产实践

时间:2023-10-08 19:00:20浏览次数:56  
标签:COMMENT 生产实践 存储 varchar utf8mb4 数据库 ci COLLATE unicode

1.创建存储过程日志表

点击查看代码
CREATE TABLE log_table (
    id INT AUTO_INCREMENT PRIMARY KEY,
    log_message VARCHAR(255),
    log_timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

2.创建存储过程

点击查看代码
DELIMITER //
CREATE PROCEDURE create_table_loan_bairong_several_v2_with_date_suffix()
BEGIN
    DECLARE current_month INT;
    DECLARE current_year INT;
    DECLARE table_name_var VARCHAR(255);
		DECLARE ddl_sql TEXT;

    -- 声明一个变量来存储日志信息
    DECLARE log_message VARCHAR(255);
		SET time_zone = 'Asia/Shanghai';
    -- 设置日志信息
    SET log_message = concat('存储过程开始执行:' , NOW());
    -- 插入日志信息到日志表中(假设有一个名为 log_table 的日志表)
    INSERT INTO log_table (log_message, log_timestamp)
    VALUES (log_message, NOW());

    SET current_month = MONTH(CURRENT_DATE());
    SET current_year = YEAR(CURRENT_DATE());
    
    SET table_name_var = CONCAT('loan_bairong_several_v2_', current_year, '_', LPAD(current_month, 2, '0'));
		SET ddl_sql = '(
        `id` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT ''主键id'',
        `name_clear` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT ''明文姓名'',
        `mobile_md5` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT ''手机号md5'',
        `id_card_md5` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT ''身份证号md5'',
        `name` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT ''姓名'',
        `mobile` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT ''手机号'',
        `id_card` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT ''身份证号'',
        `als_d7_id_nbank_else_allnum` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT ''0'' COMMENT ''按身份证号查询,近7天在非银机构-其他申请次数'',
        `als_d7_id_nbank_oth_allnum` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT ''0'' COMMENT ''按身份证号查询,近7天在非银机构-其他申请次数'',
        `als_d7_id_nbank_allnum` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT ''0'' COMMENT ''按身份证号查询,近7天在非银机构申请次数'',
        `als_m1_id_nbank_oth_allnum` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT ''0'' COMMENT ''按身份证号查询,近1个月在非银机构-其他申请次数'',
        `als_m1_id_nbank_else_allnum` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT ''0'' COMMENT ''按身份证号查询,近1个月在非银机构-其他申请次数'',
        `als_m3_cell_min_inteday` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT ''0'' COMMENT ''按手机号查询,近3个月申请最小间隔天数'',
        `als_d7_id_nbank_ca_allnum` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT ''0'' COMMENT ''按身份证号查询,近7天在非银机构-现金类分期机构申请次数'',
        `als_d7_id_nbank_nsloan_allnum` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT ''0'' COMMENT ''按身份证号查询,近7天在非银机构-持牌网络小贷机构申请次数'',
        `als_m6_cell_nbank_finlea_orgnum` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT ''0'' COMMENT ''按手机号查询,近6个月在非银机构-持牌融资租赁机构申请机构数'',
        `als_m1_id_af_allnum` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT ''0'' COMMENT ''按身份证号查询,近1个月申请汽车金融的次数'',
        `als_m3_id_nbank_autofin_allnum` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT ''0'' COMMENT ''按身份证号查询,近3个月在非银机构-持牌汽车金融机构申请次数'',
        `als_m6_id_nbank_autofin_allnum` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT ''0'' COMMENT ''按身份证号查询,近6个月在非银机构-持牌汽车金融机构申请次数'',
        `als_m1_id_nbank_autofin_allnum` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT ''0'' COMMENT ''按身份证号查询,近1个月在非银机构-持牌汽车金融机构申请次数'',
        `als_d7_id_nbank_orgnum` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT ''0'' COMMENT ''按身份证号查询,近7天在非银机构申请机构数'',
        `als_m1_id_nbank_orgnum` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT ''0'' COMMENT ''按身份证号查询,近1个月在非银机构申请机构数'',
        `als_m3_id_nbank_orgnum` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT ''0'' COMMENT ''按身份证号查询,近3个月在非银机构申请机构数'',
        `request_day_v2` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT ''请求数据中心的天'',
        `als_d15_id_nbank_oth_allnum` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT ''0'' COMMENT ''按身份证号查询,近15天在非银机构-其他申请次数'',
        `als_m3_id_nbank_oth_allnum` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT ''0'' COMMENT ''按身份证号查询,近3个月在非银机构-其他申请次数'',
        `als_m6_id_nbank_oth_allnum` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT ''0'' COMMENT ''按身份证号查询,近6个月在非银机构-其他申请次数'',
        `als_m12_id_nbank_oth_allnum` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT ''0'' COMMENT ''按身份证号查询,近12个月在非银机构-其他申请次数'',
        `als_m12_cell_nbank_else_orgnum` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT ''0'' COMMENT ''按手机号查询,近12个月在非银机构-其他申请机构数'',
        `als_m12_cell_bank_orgnum` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT ''0'' COMMENT ''按手机号查询,近12个月在银行机构申请机构数'',
        `als_m6_cell_nbank_else_orgnum` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT ''0'' COMMENT ''按手机号查询,近6个月在非银机构-其他申请机构数'',
        `als_m3_cell_nbank_else_orgnum` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT ''0'' COMMENT ''按手机号查询,近3个月在非银机构-其他申请机构数'',
        `als_m12_cell_nbank_sloan_allnum` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT ''0'' COMMENT ''按手机号查询,近12个月在非银机构-持牌小贷机构申请次数'',
        `als_m12_cell_nbank_oth_orgnum` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT ''0'' COMMENT ''按手机号查询,近12个月在非银机构-其他申请机构数'',
        `als_m6_cell_nbank_tot_mons` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT ''0'' COMMENT ''按手机号查询,近6个月在非银机构有申请记录月份数'',
        `als_m12_cell_bank_allnum` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT ''0'' COMMENT ''按手机号查询,近12个月在银行机构申请次数'',
        `als_fst_cell_bank_inteday` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT ''0'' COMMENT ''按手机号查询,距最早在银行机构申请的间隔天数'',
        `request_time_v2` datetime NOT NULL COMMENT ''请求数据中心的时间'',
        `request_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT ''请求流水号'',
        `request_used_report_id` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT ''本次请求解析用到的报告id'',
        `request_is_history_data` char(2) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT ''0不是历史数据,1是历史数据'',
        `report_request_day` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
        `report_request_time` datetime DEFAULT NULL,
        PRIMARY KEY (`id`) USING BTREE,
        KEY `idx_name` (`name_clear`),
        KEY `idx_mobile_md5` (`mobile_md5`),
        KEY `idx_id_card_md5` (`id_card_md5`),
        KEY `idx_request_day_v2` (`request_day_v2`),
        KEY `idx_request_time_v2` (`request_time_v2`),
        KEY `idx_request_id` (`request_id`) USING BTREE
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT=''用户多头借贷信息'';;';
    
    IF NOT EXISTS (SELECT table_name FROM information_schema.tables WHERE table_name = table_name_var) THEN
				-- 设置日志信息
				SET log_message = concat('存储过程执行中:' ,table_name_var);
				SET time_zone = 'Asia/Shanghai';
				-- 插入日志信息到日志表中
				INSERT INTO log_table (log_message, log_timestamp)
				VALUES (log_message, NOW());
		
        SET @sql = CONCAT(
				'CREATE TABLE ', 
				table_name_var, 
				ddl_sql
				);
        PREPARE stmt FROM @sql;
        EXECUTE stmt;
        DEALLOCATE PREPARE stmt;
			
    END IF;
		
		    -- 设置日志信息
    SET log_message = concat('存储过程执行完成:' , table_name_var);
		SET time_zone = 'Asia/Shanghai';
    -- 插入日志信息到日志表中
    INSERT INTO log_table (log_message, log_timestamp)
    VALUES (log_message, NOW());
		
END;
//
DELIMITER ;

3.打开事件调度器

set global event_scheduler = on
set global event_scheduler = off
call create_table_loan_bairong_several_v2_with_date_suffix();

4.设置事件触发器

点击查看代码
DELIMITER //
CREATE EVENT create_table_loan_bairong_several_v2_event
ON SCHEDULE EVERY 1 MONTH
STARTS TIMESTAMP(CURRENT_DATE(), '00:00:00')
DO
BEGIN
    CALL create_table_loan_bairong_several_v2_with_date_suffix();
END;
//
DELIMITER ;

标签:COMMENT,生产实践,存储,varchar,utf8mb4,数据库,ci,COLLATE,unicode
From: https://www.cnblogs.com/ceilingZ/p/17749895.html

相关文章

  • 在 CentOS7/CentOS8 上使用 cephadm 安装分布式存储系统 Ceph【转】
    Cephadm介绍官方文档:https://docs.ceph.com/en/latest/cephadm/cephadm 用于部署和管理Ceph集群,它通过SSH将manager守护进程连接到主机来实现这一点。manager守护进程支持添加、删除和更新Ceph容器。cephadm 不依赖外部配置工具,例如 Ansible、Rook 和 Salt。ce......
  • 创建数据库全量备份脚本
    创建用户账号和密码配置文件#创建一个backup的登录路径mysql_config_editorset--login-path=backup--host=localhost--user=username--password在上述命令中,将backup替换为适合您的环境和需求的登录路径名称,localhost、username和--password替换为实际的数据库主机......
  • 完整创建数据库,shell脚本
    #1.安装依赖[root@db03~]#yuminstall-yautoconflibaio-devel#1.解压[root@db02~]#tarxfmysql-5.6.50-linux-glibc2.12-x86_64.tar.gz#2.创建app目录[root@db02~]#mkdir/app#3.移动目录[root@db02~]#mv/root/mysql-5.6.50-linux-glibc2.12-x86_64/a......
  • 图形化登录,数据库设置
    #创建库root@localhost[tu]>createdatabasetu;##进入库usetu;#创建表结构CREATETABLE`tiao`(`ip`int(10)unsignedzerofillNOTNULLAUTO_INCREMENTCOMMENT'ip区分',`name`varbinary(5)NOTNULLCOMMENT'用户昵称',`password`varbina......
  • 学生管理系统使用集合保存,不是用数据库的(仅供参考,网上找的,记录用)
    packagecom.ima;importcom.itheima.Student;importjava.util.ArrayList;importjava.util.Scanner;/*学生管理系统*/publicclassStudentManager{publicstaticvoidmain(String[]args){//创建集合对象,用于存储学生数据ArrayList<Student>a......
  • kubernetes 持久化存储
    目录kubernetes持久化存储k8s存储介绍特地对象存储本地存储网络共享存储EmptyDir类型hostPath类型type类型说明持久化存储PV和PVCPV和PVC生命周期PV和PVC需要注意的地方pv资源清单PVC资源清单POD要挂载PVCwordpress完整综合实践mysqlwordpressmysql主从复制实......
  • 关于数据库的复习
    数据库分位关系数据库和非关系数据库关系数据库中有Oracle、DB2、SQLServer、MySQL等。非关系数据库就是NOSQL。这老师MySQL的官网下载地址https://dev.mysql.com/downloads/windows/installer/8.0.html接下来就是使用图形客户端navicat来操作数据库了。再就是SQL语句:数据查......
  • JS中数据的存储方式和位置
    1.js数据类型①原始数据类型:Undefined,Null,Boolean,Number,String ②引用数据类型:对象,数组,函数2.数据存储的位置①原始数据类型:     栈内存  原始数据类型直接存储在栈(stack)中的简单数据段,占据空间小、大小比较稳定,属于被频繁使用数据,所以放入栈中存储;②引......
  • Centos系统安装MySQL数据库时,要以不安全的方式连接至 dev.mysql.com,使用“--no-check-
    解决:要以不安全的方式连接至dev.mysql.com,使用“--no-check-certificate” 问题:[root@192桌面]#wgethttps://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm--2023-10-0812:44:16--https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.......
  • VSCode & Intellij IDEA CE 数据库连接
    VSCode&IntellijIDEACE数据库连接大概记一下现在正在用的几个工具/插件VSCodeVSCode里面的工具我下载了很多,如果只是链接MySQL的话,可能用JunHan这位大佬的MySQL就好了:使用这个插件直接打开.sql文件单击运行就能跑sql命令,而且跑起来也挺方便的不过我们项目......