mysql循环建表_MySQL循环建表和结合两表的update
使用存储过程,实现循环建表 DELIMITER // CREATE PROCEDURE test.create_channel_avail() BEGIN DECLARE `@i` INT(11); DECLARE
使用存储过程,实现循环建表
DELIMITER //
CREATE PROCEDURE test.create_channel_avail()
BEGIN
DECLARE `@i` INT(11);
DECLARE `@sqlstr` VARCHAR(2800);
SET `@i`=1;
WHILE `@i` < 101 DO
SET @sqlstr = CONCAT(
"CREATE TABLE channel_avail",
`@i`, "(
`prop` VARCHAR(40) ,
`stay_date` DATE,
`roomcode` VARCHAR(40),
`channel_code` VARCHAR(40),
`status` VARCHAR(1) DEFAULT 'A' ,
`createtime` DATETIME COMMENT '创建时间戳',
`updatetime` DATETIME COMMENT '更新时间戳',
PRIMARY KEY (`prop`,`stay_date`,`roomcode`,`channel_code`)
) ENGINE=INNODB
DEFAULT CHARSET=utf8;
"
);
PREPARE stmt FROM @sqlstr;
EXECUTE stmt;
SET `@i` = `@i` + 1;
END WHILE;
END;
CALL test.create_channel_avail_db();
DROP PROCEDURE test.create_channel_avail_db;
在使用MySQL数据库,update和select相结合去更新表中数据时要注意:
如 表test1
A B
1 a
2 b
3 c
表test2
A B
2 d
3 e
4 f
简单的update与select结合,,本来是希望把test1表中的a=2和a=2两行的B列修改为d和e
update from test1 set b = (select b from a where test1.a=test2.a)
注意这个语法是有个陷阱的,此时被更新的表test1中 a=2和a=3的确实被修改为d和e,可是由于a=1行的数据不在结果集里面,所有被set为null,,,也就是说除了结果集有的被更新,没有的值会被设置为null(不允许为null的列暂未测试)
使用inner join的方法就是我们想要的结果,所以要用该方法代替上面的SQL
update test1 INNER JOIN test2 ON a.id=b.id
SET test1.B=test2.B
本文永久更新链接地址:
本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉
本文系统来源:php中文网
mysql循环建表_MySQL循环建表和结合两表的update相关推荐
- mysql 备份表_MySQL中表的复制以及大型数据表的备份教程
表复制mysql拷贝表操作我们会常常用到,下面就为您详细介绍几种mysql拷贝表的方式,希望对您学习mysql拷贝表方面能够有所帮助. 假如我们有以下这样一个表: id username passwo ...
- python复制mysql表_MySQL中表的复制以及大型数据表的备份教程
CREATE TABLE newadmin ( id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY ) AS ( SELECT * FROM admin ) ...
- 虚拟机mysql创建一个表_MySQL:创建、修改和删除表
其实对很多人来说对于SQL语句已经忘了很多,或者说是不懂很多,因为有数据库图形操作软件,方便了大家,但是我们不能忘记最根本的东西,特别是一些细节上的东西,可能你用惯了Hibernate,不用写SQL语 ...
- 如何用mysql创建orders表_MySQL学习十四创建和操纵表
摘要: 本篇博客仅作为笔记,如有侵权,请联系,立即删除(网上找博客学习,然后手记笔记,因纸质笔记不便保存,所以保存到网络笔记). 本博讲述表的创建.更改和删除的基本知识. 一.创建表 MySQL不仅用 ...
- mysql怎样循环执行存储_mysql 循环存储过程
create procedure cunchu1(a int) begin DECLARE count int default 0; -- 定义变量 DECLARE i int default 1; ...
- 怎么查找表_MySQL索引是怎么支撑千万级表的快速查找?
前言 在 MySQL 官方提到,改善操作性能的最佳方法 SELECT在查询中测试的一个或多个列上创建索引.索引条目的作用类似于指向表行的指针,从而使查询可以快速确定哪些行与WHERE子句中的条件匹配, ...
- mysql sum提高效率_MySQL巧建sum索引帮我们提高至少100%的效率
TABLE`a` ( `id` mediumint(8) unsigned NOT NULLAUTO_INCREMENT, `fid`smallint(6) unsigned NOT NULL DEF ...
- mysql如何恢复单表_MySQL如何恢复单库或单表,以及可能遇到的坑
前言: MySQL 逻辑备份工具最常用的就是 mysqldump 了,一般我们都是备份整个实例或部分业务库.不清楚你有没有做过恢复,恢复场景可能就比较多了,比如我想恢复某个库或某个表等.那么如何从全备 ...
- mysql cte的好处_Mysql 8 重要新特性 - CTE 通用表表达式
前言 Mysql 8 正式发布了,新增了很多优秀特性,之后我会挑些重点来分享. 下面和大家一起熟悉下CTE(Common Table Expressions)通用表表达式. CTE 是什么 派生表大家 ...
最新文章
- linux之SQL语句简明教程---IN
- 《思科UCS服务器统一计算》一1.2 数据中心的演变
- 信息系统项目管理师:第6章:项目进度管理-章节真题
- JavaScript:从此不再怕闭包
- golang 日志分析_容器日志采集利器:Filebeat深度剖析与实践
- 【数据结构和算法笔记】AOE网和关键路径
- UwpDesktop!WPF也能开发Surface Dial
- mongoDB备份方案
- 鸿蒙手机系统pc版下载,鸿蒙系统os下载官网版v1.0开源版
- KNN算法和kd树详解(例子+图示)
- Springboot实战项目完结篇之商城系统之收货地址管理
- maya表面种植物体插件 Plant Objects on surface v1.0 下载及教程
- 9.7 方向导数与梯度
- hg8010h的调试。
- 计算机有没有博士学位造假,72岁老人获博士学位遭质疑学历造假 校方辟谣
- 第三方支付下半场:混战转共生
- 中科院JCR期刊分区微信公众号查询平台升级
- 基于对抗互信息学习特征解耦的零样本语音转换|INTERSPEECH 2022
- 十、SpringCloud + Alibaba 全家桶详解(目前公司最新技术)
- 软文外链不稳定原因总结
热门文章
- 在内存只有24KB的电脑上写操作系统,是怎样的体验?
- 那些让你爱不释手的 Spring 代码技巧
- 《英雄联盟》出现大面积闪退;两名 95 后大学生用脑电波写“福”字;Windows蓝屏为什么是蓝底白字? | 极客头条...
- 2021 年 RISC-V 会有什么大变化?
- 关于清理「死代码」,我有一些好方法推荐给你
- PyOpenCV 实战:借助视觉识别技术实现围棋终局的胜负判定
- 别纠结,提高代码整洁度也没那么难!
- 20 位行业专家共话选型经验,CSDN「选型智囊团高端研讨会」圆满落幕!
- 阿里文娱测试实战:机器学习+基于热度链路推荐的引流,让对比测试更精准
- 谈谈能带来高薪报酬的软件技术