mysql数据库动态创建表_MySQL
bitsCN.com
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

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

您可以通过计算图像每秒更新的次数来衡量屏幕的刷新率。DRR 是 Windows 11 中包含的一项新功能,可帮助您节省电池寿命,同时仍提供更流畅的显示,但当它无法正常工作时也就不足为奇了。随着越来越多的制造商宣布计划停止生产 60Hz 显示器,具有更高刷新率的屏幕预计将变得更加普遍。这将导致更流畅的滚动和更好的游戏,但它会以减少电池寿命为代价。但是,此 OS 迭代中的动态刷新率功能是一个漂亮的附加功能,可以对您的整体体验产生重大影响。继续阅读,我们将讨论如果 Windows 11 的动态刷新率未

在iPhone上,Apple 的屏幕录制功能会录制您在屏幕上所做的事情的视频,如果您想捕捉游戏玩法、引导他人完成应用程序中的教程、演示错误或其他任何事情,这非常有用。在显示屏顶部有凹口的旧款 iPhone 上,该凹口在屏幕录制中不可见,这是应该的。但在带有 Dynamic Island 切口的较新 iPhone 上,例如 iPhone 14 Pro 和 iPhone 14 Pro Max,Dynamic Island 动画显示红色录制指示器,这导致切口在捕获的视频中可见。这可能会

在创建虚拟机时,系统会要求您选择磁盘类型,您可以选择固定磁盘或动态磁盘。如果您选择了固定磁盘,后来意识到需要动态磁盘,或者相反,该怎么办?好!你可以把一种转换成另一种。在这篇文章中,我们将看到如何将VirtualBox固定磁盘转换为动态磁盘,反之亦然。动态磁盘是一种虚拟硬盘,它最初具有较小的大小,随着您在虚拟机中存储数据,其大小会相应增长。动态磁盘在节省存储空间方面非常高效,因为它们只占用所需的主机存储空间。然而,随着磁盘容量的扩展,可能会稍微影响计算机的性能。固定磁盘和动态磁盘是虚拟机中常用的

如果要在Windows11中将动态磁盘转换为基本磁盘,则应首先创建备份,因为该过程将擦除其中的所有数据。为什么要在Windows11中将动态磁盘转换为基本磁盘?根据Microsoft,动态磁盘已从Windows中弃用,不再推荐使用。此外,Windows家庭版不支持动态磁盘,因此您将无法访问这些逻辑驱动器。如果要将更多磁盘合并到更大的卷中,建议使用基本磁盘或存储空间。在本文中,我们将向您展示如何在Windows11上将动态磁盘转换为基本磁盘如何在Windows11中将动态磁盘转换为基本磁盘?在开始

想象一下,您正在系统上寻找某些东西,但不确定要打开或选择哪个应用程序。这就是动态磁贴功能发挥作用的地方。任何支持的应用程序的动态磁贴都可以添加到桌面或Windows系统的开始菜单上,其磁贴经常变化。LiveTiles使应用程序小部件变得活跃起来,非常令人愉悦。不仅是为了它的外观,甚至是为了方便。假设您在系统上使用whatsapp或facebook应用程序,如果在应用程序图标上显示通知数量不是很方便吗?如果将任何此类受支持的应用程序添加为动态磁贴,则这是可能的。让我们看看如何在Windows

微软在Windows10中引入了快速访问,并在最近发布的Windows11操作系统中保留了该功能。快速访问取代了文件资源管理器中的收藏夹系统。这两个功能之间的核心区别之一是快速访问在其列表中添加了一个动态组件。一些文件夹永久显示,而其他文件夹则根据使用情况显示。固定文件夹显示有一个大头针图标,动态文件夹没有这样的图标。您可以在此处查看我的收藏夹和快速访问之间的比较,了解更多详细信息。快速访问比收藏夹更强大,但动态文件夹列表为其添加了混乱元素。可能会显示无用或不应在文件资源管理器中突出显示的文件

什么是 Windows 11 上的动态锁定?动态锁定是 Windows 11 的一项功能,可在连接的蓝牙设备(您的手机或可穿戴设备)超出范围时锁定您的计算机。即使您在离开时忘记使用 Windows 键 L 快捷键,动态锁定功能也会自动锁定您的 PC。Dynamic Lock 使用任何带有蓝牙的连接设备,但最好使用电池电量和续航里程充足的设备,例如您的手机。一旦您的设备在 30 秒内无法触及,Windows 将自动锁定屏幕。将蓝牙设备与 Windows 11 配对要让一切正常运行,您需要先将

如何使用HTML、CSS和jQuery制作一个动态的图片轮播在网站设计和开发中,图片轮播是一个经常使用的功能,用于展示多张图片或广告横幅。通过HTML、CSS和jQuery的结合,我们可以实现一个动态的图片轮播效果,为网站增加活力和吸引力。本文将介绍如何使用HTML、CSS和jQuery制作一个简单的动态图片轮播,并提供具体的代码示例。第一步:设置HTML结
