一、存储过程创建多张表
1.利用存储过程,动态创建多张表:
创建16张表,从score_stream_00到score_stream_15
DELIMITER $$
CREATE
PROCEDURE `score`.`p`()
BEGIN
DECLARE i INT;
DECLARE table_name VARCHAR(20);
DECLARE table_pre VARCHAR(20);
DECLARE sql_text VARCHAR(2000);
SET i=1;
SET table_name='';
SET table_pre='score_stream_';
SET sql_text='';
WHILE i<16 DO
IF i<10 THEN SET table_name=CONCAT(table_pre,'0',i);
ELSE SET table_name=CONCAT(table_pre,i);
END IF;
SET sql_text=CONCAT('CREATE TABLE ', table_name, '(
id VARCHAR(32) NOT NULL COMMENT \'主键\',
user_id VARCHAR(32) NOT NULL COMMENT \'用户ID\',
direction VARCHAR(8) NOT NULL COMMENT \'收支方向 收入-IN 支出-OUT\',
operate_score INT(11) NOT NULL COMMENT \'操作的积分数\',
operator VARCHAR(32) NOT NULL COMMENT \'操作人:如果是系统,则为system\',
operate_time DATETIME NOT NULL COMMENT \'操作时间,首次生成积分流水的操作时间,用来排序显示\',
score_status INT(4) NOT NULL',
score_rule_id VARCHAR(32) DEFAULT NULL COMMENT \'积分规则ID\',
member_level INT(4) DEFAULT NULL COMMENT \'会员等级1:普通会员,2:VIP会员\',
score_type INT(4) NOT NULL COMMENT \'获取积分的类型,和score_task表中的score_type一个含义\',
product_id VARCHAR(32) DEFAULT NULL COMMENT \'产品ID\',
remark VARCHAR(256) DEFAULT NULL COMMENT \'积分流水的备注(用来给内部人看的)\',
operate_source INT(4) DEFAULT NULL COMMENT \'操作来源:1:系统操作触发,2:人工操作触发\',
gmt_modify DATETIME NOT NULL COMMENT \'表改修时间\',
gmt_create DATETIME NOT NULL COMMENT \'表创建时间\',
PRIMARY KEY (id),
KEY idx_user_id (user_id),
KEY idx_direction (direction),
KEY idx_operate_time (operate_time),
KEY idx_score_status (score_status)
) ENGINE=INNODB DEFAULT CHARSET=utf8' );
SELECT sql_text;
SET @sql_text=sql_text;
PREPARE stmt FROM @sql_text;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET i=i+1;
END WHILE;
END$$
DELIMITER ;
2.执行存储过程,创建表
CALL p();
二、利用sql语句创建多张表
创建16张表:
CREATE TABLE `usermng_daily_earning_0000` (
`id` VARCHAR(24) NOT NULL COMMENT '主键 15位时间戳+3位随机数+userId后两位+4位表示所在表',
`user_id` VARCHAR(22) NOT NULL COMMENT '用户ID(根据userId来分表)',
`occur_date` INT(8) NOT NULL COMMENT '收益发生日期',
`ta_id` VARCHAR(22) DEFAULT NULL COMMENT '交易模式',
`product_id` VARCHAR(20) NOT NULL COMMENT '产品ID',
`product_name` VARCHAR(50) NOT NULL COMMENT '产品名称',
`order_id` VARCHAR(20) DEFAULT NULL COMMENT '订单ID',
`assets_id` VARCHAR(22) NOT NULL COMMENT'资产ID',
`earning` DECIMAL(16,2) NOT NULL COMMENT '产生的收益',
`modify_time` DATETIME NOT NULL COMMENT '表修改时间',
`create_time` DATETIME NOT NULL COMMENT '表创建时间',
PRIMARY KEY (`id`),
KEY `idx_user_id` (`user_id`) USING BTREE,
KEY `IDX_occur_date` (`occur_date`) USING BTREE,
KEY `IDX_create_time` (`create_time`) USING BTREE
) ENGINE=INNODB DEFAULT CHARSET=utf8;
CREATE TABLE `usermng_daily_earning_0008` LIKE usermng_daily_earning_0000;
CREATE TABLE `usermng_daily_earning_0016` LIKE usermng_daily_earning_0000;
CREATE TABLE `usermng_daily_earning_0024` LIKE usermng_daily_earning_0000;
CREATE TABLE `usermng_daily_earning_0032` LIKE usermng_daily_earning_0000;
CREATE TABLE `usermng_daily_earning_0040` LIKE usermng_daily_earning_0000;
CREATE TABLE `usermng_daily_earning_0048` LIKE usermng_daily_earning_0000;
CREATE TABLE `usermng_daily_earning_0056` LIKE usermng_daily_earning_0000;
CREATE TABLE `usermng_daily_earning_0064` LIKE usermng_daily_earning_0000;
CREATE TABLE `usermng_daily_earning_0072` LIKE usermng_daily_earning_0000;
CREATE TABLE `usermng_daily_earning_0080` LIKE usermng_daily_earning_0000;
CREATE TABLE `usermng_daily_earning_0088` LIKE usermng_daily_earning_0000;
CREATE TABLE `usermng_daily_earning_0096` LIKE usermng_daily_earning_0000;
CREATE TABLE `usermng_daily_earning_0104` LIKE usermng_daily_earning_0000;
CREATE TABLE `usermng_daily_earning_0112` LIKE usermng_daily_earning_0000;
CREATE TABLE `usermng_daily_earning_0120` LIKE usermng_daily_earning_0000;
注意:额外说一句,第二种表命名的方式更加便于以后数据迁移和扩容
分享到:
相关推荐
mes系统整套数据库表结构详细说明文档(超300张表结构).docx
MySQL版省市区表 ---三级联动 省市区三张表 -分表 共三张表,合计三千条数据 数据是官网所发布,时间略旧,可能与最新国区有点误差
在MySQL中创建dept,emp,salgrade三张表,以供学习测试使用
mes系统整套数据库表结构详细说明文档(超300张表结构).zip
from 多张表 等于 left join 其他表.
这是quartz的mysql类型的11个管理quartz的建表语句,全部来自于官网下载,全名:tables_mysql_innodb.sql
一个商城的表结构设计(建表语句),共12张表。
答:如果你正在用的Activiti数据库表缺少注释,那么这个脚本可以拿去直接执行,它只添加注释,不改变表结构,同时也提供了含那表语句的脚本,方便正在创建新项目的开发者使用。 问题二:明明Activiti有25张表,为...
Activiti-5.21数据库表结构详解(共25张表) 工作流的应用越来越广泛,而activiti是公认的现阶段最好的工作流框架之一,详细了解activiti的库表结构有助于您更好的掌握学习工作流框架,共享本资源以供广大编程从业人员...
java实现mysql数据库的表导出到excel文件,已经基本的demo包含jar包,可以导入的eclipse里面。比较好用吧
可以对两个mysql数据库进行表和表字段的对比,反馈缺少的字段和表名。
本文实例讲述了MySQL 多表关联一对多查询实现取最新一条数据的方法。分享给大家供大家参考,具体如下: MySQL 多表关联一对多查询取最新的一条数据 遇到的问题 多表关联一对多查询取最新的一条数据,数据出现重复 ...
放入centos服务器中解压,可配置化进行mysql从某张表到历史表的数据迁移。该脚本可根据表中日期进行数据的定时迁移
mysql自动备份 mysql自动备份mysql自动备份mysql自动备份
XXXKETTLE全量多表数据同步 1 一. 建立资料库 3 1.1 添加资源库 3 二. 前期准备工作 7 2.1 异结构数据传输 7 2.2 数据校验 9 三. 建立转换 10 3.1 创建‘转换’(GET—ORACLE-TABLES) 10 3.1.1 创建数据源 10 3.1.2...
操作还比较容易,对于几十甚至上百张表的操作,就会耗费很大工作量,收集整理了该数据库库表结构导出demo代码,基于maven构建,导入IDEA编译快速方便,只需要修改需要导出结构的库表链接,触发下调用接口就可执行。...
尚硅谷MySQL基础视频中的四张表,包含了全部数据,测试过与视频中查询结果一致。
全国省市区3级 3张表的创建文件,可直接在MSSQL数据库创建生成表。
activiti 工作流23张表详细介绍activiti 工作流23张表详细介绍activiti 工作流23张表详细介绍activiti 工作流23张表详细介绍activiti 工作流23张表详细介绍activiti 工作流23张表详细介绍activiti 工作流23张表详细...
一个简单JAVA 小工程进行两个MYSQL数据库对象的比较,导入eclipse中,修改jdbc.properties文件中的JDBC信息,然后直接运行action包类中的main方法,生成EXCEL,excel中包含表,表中列,索引,函数过程差异比对结果。...