删除存储过程
DROP PROCEDURE IF EXISTS 过程名;
创建存储过程
delimiter ;;
CREATE DEFINER=`root`@`%` PROCEDURE `create_check_summary_month`()
BEGIN#拼接 SQL语句字符串并赋予变量sql_create_table
set @sql_create_table = concat("CREATE TABLE IF NOT EXISTS `t_check_summary_month_", CONVERT(date_format(DATE_ADD(NOW(),INTERVAL 1 YEAR), '%Y'), SIGNED),"
` (`month_summary_id` varchar(64) NOT NULL COMMENT '月对账单汇总ID,生成规则:年月日+唯一识别编码',
`business_id` varchar(64) NOT NULL COMMENT '业务ID',
`access_mode` tinyint(4) NOT NULL COMMENT '接入方式,具体定义参照:t_business:access_mode',
`organ_id` varchar(64) NOT NULL COMMENT '机构ID(业务系统)',
`organ_name` varchar(128) NOT NULL COMMENT '机构名称(业务系统)',
`bill_date` varchar(10) NOT NULL COMMENT '账单汇总日期,格式:2021-10',
`channel_fee` int(11) NOT NULL COMMENT '渠道服务费,单位分',
`third_pay_amount` int(11) NOT NULL COMMENT '实付总金额,单位分(第三方)',
`third_pay_order_num` int(11) NOT NULL COMMENT '实付总订单数(第三方)',
`third_refund_amount` int(11) NOT NULL COMMENT '退款总金额,单位分(第三方),注意:如果账单类型为退款,对应金额为负数',
`third_refund_order_num` int(11) NOT NULL COMMENT '退款总订单数(第三方)',
`local_pay_amount` int(11) NOT NULL COMMENT '实付总金额,单位分(本地)',
`local_pay_order_num` int(11) NOT NULL COMMENT '实付总订单数(本地)',
`local_refund_amount` int(11) NOT NULL COMMENT '退款总金额,单位分(本地),注意:如果账单类型为退款,对应金额为负数',
`local_refund_order_num` int(11) NOT NULL COMMENT '退款总订单数(本地)',
`summary_statistics` text NOT NULL COMMENT '汇总统计',
`settle_time` bigint(20) DEFAULT NULL COMMENT '结算日期,页面手动触发',
`settle_state` tinyint(4) NOT NULL COMMENT '结算状态:0-未结算,1-已结算,2-已冻结,3-未生成',
`remark` varchar(128) NOT NULL DEFAULT '' COMMENT '备注',
`status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态:0失效/不可用 ;1有效/可用',
`create_time` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '添加时间',
`update_time` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '修改时间',
PRIMARY KEY (`month_summary_id`) USING BTREE,
KEY `index_organ_id` (`organ_id`),
KEY `index_bill_date` (`bill_date`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='月对账单汇总表';");
#把SQL字符串转化成可执行SQL语句
PREPARE sql_create_table FROM @sql_create_table;
#执行SQL
EXECUTE sql_create_table;
END;;
delimiter ;