mysql 动态 建表,mysql数据库动态创建表的实例分享
摘要 腾兴网为您分享:mysql数据库动态创建表的实例分享,易视云3,完美root,刷机大师,手游宝等软件知识,以及清仓兔,找明星,爱普生1500w,txt完结小说全本软件,windows自带画图软件,pdf目录生成,痛经的图片,就旅行,幼资源,爱漫网,加水印app,感恩贺卡简单又漂亮,背单词游戏,运营商logo,壹元等软件it资讯,欢迎关注腾兴网。本节内容: mysql数据库动态创建表 所谓动态创建表: 即表的字段名和字段数均不固定,根据需求来创建。 第一步.创建相关表 复制代码 代码示例: /*---建立所有指标信息的临时表---*/...
本节内容:
mysql数据库动态创建表
所谓动态创建表:
即表的字段名和字段数均不固定,根据需求来创建。
第一步.创建相关表
复制代码 代码示例:
/*---建立所有指标信息的临时表---*/
drop table if exists INTERBANKBONDQUOTE_SClass;
create table INTERBANKBONDQUOTE_SClass (
Name varchar(50) not null,
id int Primary key,
Parent int,
Value varchar(50)
);
insert into INTERBANKBONDQUOTE_SClass(Name,id,Value)values('最新成交', 0,'');
insert into INTERBANKBONDQUOTE_SClass(Name,id,Value)values('买入信息', 1,'');
insert into INTERBANKBONDQUOTE_SClass(Name,id,Value)values('买卖价差', 2,'');
insert into INTERBANKBONDQUOTE_SClass(Name,id,Value)values('卖出信息', 3,'');
insert into INTERBANKBONDQUOTE_SClass(Name,id,Parent,Value)values('中债最新估值', 4, -1,'');
insert into INTERBANKBONDQUOTE_SClass(Name,id,Value)values('含权债行权指标', 5,'');
insert into INTERBANKBONDQUOTE_SClass(Name,id,Value)values('基础指标', 6,'');
insert into INTERBANKBONDQUOTE_SClass(Name,id,Value)values('双边报价笔数', 7,'');
insert into INTERBANKBONDQUOTE_SClass(Name,id,Parent,Value)values('报价方', 8, 1, 'col4');
insert into INTERBANKBONDQUOTE_SClass(Name,id,Parent,Value)values('报价方会员号', 9, 1, 'col5');
insert into INTERBANKBONDQUOTE_SClass(Name,id,Parent,Value)values('报价时间', 10, 1, 'col6');
insert into INTERBANKBONDQUOTE_SClass(Name,id,Parent,Value)values('匿名', 11, 1, 'col7');
第二步:
复制代码 代码示例:
/*---建立显示数据表格标题的表---*/
drop table if exists INTERBANKBONDQUOTE_T;
create table INTERBANKBONDQUOTE_T as select concat('\'',a.Name,',',b.Name,'\' __TITLE__',b.Value);
第三步:
因为在mysql中,这时的变量长度受到了限制 ,本来应该longtext足够长的,可实际只返回了限制长度的。
如果字段太多了,就要用第二种方法。
存储过程A: 这里变量返回值长度受限,字段不多时可以。
复制代码 代码示例:
DELIMITER $$
DROP PROCEDURE IF EXISTS `dzhappdb_bond`.`INTERBANKBONDQUOTE_TSP`$$
CREATE PROCEDURE INTERBANKBONDQUOTE_TSP ()
BEGIN
DECLARE objs1 TEXT;
DECLARE objs TEXT;
SELECT GROUP_CONCAT(col1) INTO objs1 FROM T;
SET objs =CONCAT('CREATE TABLE Title AS SELECT ',objs1);
SET @sql_txt = objs;
PREPARE stmt FROM @sql_txt;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END$$
call INTERBANKBONDQUOTE_TSP;
存储过程B:这样不管字段多少,只要数据库支持就可以创建成功。但不如第一个方法简洁。
复制代码 代码示例:
DROP PROCEDURE IF EXISTS INTERBANKBONDQUOTE_TSP_Title;
drop table if EXISTS Title;
CREATE PROCEDURE INTERBANKBONDQUOTE_TSP_Title()
proc:begin
DECLARE add_sql LONGTEXT;
DECLARE insert_sql LONGTEXT;
DECLARE nhh_sql varchar(200);
DECLARE column_name varchar(100);
DECLARE column_value varchar(100);
DECLARE mycount int;
DECLARE len int;
DECLARE strlen int;
DECLARE cursor_Title CURSOR for select col1 from INTERBANKBONDQUOTE_T;
create table Title(mid int);
insert into Title values (100);
select count(col1) into @mycount from INTERBANKBONDQUOTE_T;
OPEN cursor_Title;
REPEAT
FETCH cursor_Title INTO nhh_sql;
begin
set @mycount=@mycount-1;
set @strlen=CHARACTER_LENGTH(nhh_sql);
set @len=INSTR(nhh_sql,' ');
set @column_name=RIGHT(nhh_sql,@strlen-@len);
set @column_value=LEFT(nhh_sql,@len);
set @add_sql=CONCAT('ALTER table Title add COLUMN ',@column_name,' varchar(100)');
set @insert_sql=CONCAT('update Title set ',@column_name,'=',@column_value,' where mid=100');
PREPARE stmt1 FROM @add_sql;
EXECUTE stmt1;
PREPARE stmt2 FROM @insert_sql;
EXECUTE stmt2;
DEALLOCATE PREPARE stmt1;
DEALLOCATE PREPARE stmt2;
end;
until @mycount<=0
END REPEAT;
CLOSE cursor_Title;
ALTER table Title drop column mid;
end proc;
//调用存储过程
call INTERBANKBONDQUOTE_TSP_Title;
相关推荐
mysql 动态 建表,mysql数据库动态创建表的实例分享相关推荐
- pdman 创建表同步数据库_pdman 创建表同步数据库_使用PDMan来设计数据库系列1-PDMan软件的简介与安装...
前言 最近除了做好手上的工作外,也需要开始设计一套数据库用来存储实验室的全套数据,可能会涉及多个表的交叉引用,为了更加高效和准确的进行设计,需要用到数据库模型建模工具.这里选择的是开源的PDMan. ...
- MySQL笔记(一)创建数据库、创建表、修改表、删除表,以及建立约束
这是我在学习Mysql之路上做的笔记,今天将它粘出来.这一篇比较基础主要是创建数据库.创建表.修改表.删除表,以及建立约束:非空约束.主键约束.外键约束.唯一值约束.有错误的欢迎大家指出... -- ...
- mysql数据库初识 使用数据库,创建表,表中数据增删改 自用笔记
#指定数据库 表在数据库中创建用来存储数据 USE kj13test; #创建表 /** 狗信息 dogId dogName dogType dogAge 1001 小白 二哈 2 10 ...
- mysql下备份所有的数据库和数据表
shell脚本实现 mysql下备份所有的数据库和数据表 要求:(1)mysql下的数据库的表要以table_name.sql备份保存 (2)保存在当前目录下,并以当天时间命名 #!/bin/bash ...
- mysql查询添加数据库表_MySQL数据库篇之表的增删改查
主要内容: 一.表介绍 二.创建表 三.查看表结构 四.修改表结构 五.复制表 六.删除表 1️⃣ 表介绍 表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称 ...
- java中创建数据表,Java如何在数据库中创建表?
在此示例中,您可以看到如何在MySQL数据库中创建表.我们创建了一个称为表books具有以下字段,isbn,title,published_year和price.我们首先创建与数据库的连接,然后执行创 ...
- 手把手教你使用C#操作SQLite数据库,新建数据库,创建表,插入,查询,删除,运算符,like...
目录: 一.新建项目,添加引用 二.创建数据库 三.创建表 四.插入数据 五.查询数据 六.删除数据 七.运算符 八.like语句 我的环境配置:windows 64,VS,SQLite(点击下 ...
- 手把手教你使用C#操作SQLite数据库,新建数据库,创建表,插入,查询,删除,运算符,like(持续更新)...
有问题欢迎留言!!! 目录: 一.新建项目,添加引用 二.创建数据库 三.创建表 四.插入数据 五.查询数据 六.删除数据 七.运算符 八.like语句 我的环境配置:windows 64, ...
- rac建oracle表空间,Oracle Rac创建表空间及用户
1. 创建表空间: BEGIN DECLARE cnt integer := 0; BEGIN SELECT 1 INTO cnt FROM dual WHERE exists(SELECT * FR ...
- 执行HBase建表操作,每次创建表HRegionServer都会挂掉,而 HMaster还在!RetriesExhaustedException: Can't get the locations
在IDE 执行HBase建表操作,每次创建表HRegionServer都会挂掉,而 HMaster还在! 报错如下: Exception in thread "main" org ...
最新文章
- Web Socket/Stomp——整合Spring Session【Header Token模式】解决方案
- jquery div拖动效果示例代码
- CPLEX教程 | Cplex介绍,CPLEX教育版和安装Cplex
- H5 video 播放器demo代码
- QQ空间自动删除说说的js脚本(亲测有效)
- 中文版的优动漫PAINT与日版CSP有什么不同?
- 微信公众号服务器配置及接入验证
- MOSFET的基本知识
- SWR:最具潜力的 React Hooks 数据请求库
- 星起航:现在做抖音小店晚不晚?
- Win7+Win8双系统安装教程!零风险超简单2
- 【vue-cli】使用es6的可选链?.操作符报错Module parse failed解决记录
- 字符串匹配——KMP算法
- 搭建云平台 1 Day 虚拟机安装(超详细)
- sqlserver打开或创建mdf失败
- 超融合基础架构HCI新特性
- Unity2017.4.26 修改AndroidSdkVersions 增加 AndroidApiLevel29 AndroidApiLevel30 AndroidApiLevel31
- 科目一考试,93分拿下!
- 《PostgreSQL开发指南》电子版PDF免费下载
- 【C/C++时间系列】字符串通过strptime函数转换成struct tm
热门文章
- 网络工程师招聘笔试题汇总一
- 简单解释不可重复读和幻读
- ---文件上传与下载
- 笔记-新版医用电气设备电磁兼容标准 YY9706.102 解读(2021-03-04 网络培训)
- 利用Java8新特征,重构传统设计模式,你学会了吗?
- 用王者荣耀来理解java设计模式之责任链模式
- 吴昊品游戏核心算法 Round 16 ——吴昊教你玩口袋妖怪 第三弹 地洞谜题
- Thinking in Android — Java入门 (1)
- 几款常见的HTML可视化编辑器
- [Game Framework之StarForce解读]01.StarForce下载运行