mysql同时修改2个表思路

1.需求:修改评论表中的昵称为手机号码最后4位。

UPDATE trans_eval SET issuer_name = MID(issuer_name,4,6) WHERE CHAR_LENGTH(issuer_name) = 11 AND issuer_name LIKE ‘1%‘;

2.由于误操作(MID(issuer_name,4,6)是中间的6位),需要数据回滚。

3.建立中间表(AND 1<>1 条件不符合建立空表)

CREATE TABLE tmp
SELECT T2.REG_NO,T2.MOBILE,t1.`issuer_name`  FROM trans_eval  t1,member t2 WHERE t1.issuer_no =t2.`reg_no`
 AND  MID(t2.`mobile`,4,6) =t1.`issuer_name`  AND 1<>1 GROUP BY T2.REG_NO,T2.MOBILE,t1.`issuer_name` ;

4.导入数据到中间表

INSERT INTO tmp
SELECT T2.REG_NO,T2.MOBILE,t1.`issuer_name`  FROM trans_eval  t1,member t2 WHERE t1.issuer_no =t2.`reg_no`
 AND  MID(t2.`mobile`,4,6) =t1.`issuer_name`  GROUP BY T2.REG_NO,T2.MOBILE,t1.`issuer_name` ;

5.数据恢复

SELECT * FROM tmp;
UPDATE tmp t1,trans_eval t2 SET t2.`issuer_name`=t1.`MOBILE` WHERE t1.`REG_NO`=t2.`issuer_no`;
时间: 2024-10-07 13:54:50

mysql同时修改2个表思路的相关文章

MySQL批量修改相同后缀表名

执行步骤 1.用concat批量生成修改表名的语句 SELECT CONCAT( 'ALTER TABLE ', table_name, ' RENAME TO ', substring(table_name,1,locate('_postfix',table_name)),'_new_postfix',';' ) FROM information_schema.tables Where table_name LIKE '%_postfix'; 2.将生成的语句执行一遍即可完成修改 ------

mysql 如何修改 删除 添加 表主键

1  创建表: create table 表名称(字段1 类型(长度) 约束, 字段2 类型(长度) 约束, 字段3 类型(长度) 约束, 字段4 类型(长度) 约束, primary key(字段4) ): 2 如果发现主键设置错了,应该是字段1是主键,但如今表里面已经有好多数据了,不能再删除表再重建了,仅仅在这基础上改动表结构. 2-1先删除主键:alter table 表名称 drop primary key; 2-2在增加主键 :alter table 表名称 add primary k

【转】mysql分库分表,数据库分库分表思路

原文:https://www.cnblogs.com/butterfly100/p/9034281.html 复制过来收藏 一. 数据切分 关系型数据库本身比较容易成为系统瓶颈,单机存储容量.连接数.处理能力都有限.当单表的数据量达到1000W或100G以后,由于查询维度较多,即使添加从库.优化索引,做很多操作时性能仍下降严重.此时就要考虑对其进行切分了,切分的目的就在于减少数据库的负担,缩短查询时间. 数据库分布式核心内容无非就是数据切分(Sharding),以及切分后对数据的定位.整合.数据

MySQL:创建、修改和删除表

其实对很多人来说对于SQL语句已经忘了很多,或者说是不懂很多,因为有数据库图形操作软件,方便了大家,但是我们不能忘记最根本的东西,特别是一些细节上的东西,可能你用惯了Hibernate,不用写SQL语句,但是不是任何项目都要用到大框架的,如果不用,那你是不是就不会操作数据库了呢,所以我们最好还是熟悉一点好,对我们以后找工作和工作都有帮助. 在说创建.修改和删除表前,我们还是要进行一个操作的简单说明: 1.登陆数据库系统 在命令行中登陆MySQL数据库管理系统,输入一下内容: mysql -h l

MySQL在线修改表结构pt-osc

MySQL在线修改表结构pt-osc 重所周知 MySQL的DDL操作操作是相比比较昂贵的.因为MySQL在修改表期间会阻塞任何读写操作. 基本上业务处于瘫痪.如果数据量较大可能需要好几个小时才能完成,无法容忍这个操作.Percona开发了一系列的工具 Percona Toolkit包,其中有一个工具pt-online-schema-change可以在线执行DDL操作,不会阻塞读写操作从而影响业务程序.当然也有其他的工具 例如 MySQL5.6的online ddl 还有gh-ost 本文主要讲

mysql基础篇 - 数据库及表的修改和删除

基础篇 - 数据库及表的修改和删除 修改和删除 一.实验简介 本节实验中,我们将学习并实践如何对数据库的内容做修改,删除,重命名等操作. 二.实验准备 在正式开始本实验内容之前,需要先下载相关代码. 该代码可以新建两个数据库,分别名为 test_01 和mysql_shiyan ,并在 mysql_shiyan 数据库中建 4 个表(department,employee,project,table_1),然后向其中插入数据. 具体操作如下,首先输入命令进入 /home/shiyanlou/De

Mysql基础知识:创建、查看、修改和删除表

Mysql 创建.查看.修改和删除表 1. 创建表 创建表的语法形式: CREATE TABLE 表名 ( 属性名 数据类型 约束条件, 属性名 数据类型 约束条件, . . . ) ENGINE=存储引擎名 DEFAULT CHARSET=字符编码名; 约束条件表: 注意: 1)可以添加多个主键.形式: 在表名后的括号内添加:PRIMARY KEY(字段名1, 字段名2, ...): 2)存储引擎和字符编码可以省略不写: 3)设置表的字段名为默认值时,需要在 “DEFULT” 关键字后添加 “

MYSQL批量修改表前缀与表名sql语句

修改表名 ALTER TABLE 原表名 RENAME TO 新表名; 一句SQL语句只能修改一张表 show tables; 1. SELECT CONCAT( 'ALTER TABLE ', table_name, ' RENAME TO db_', substring(table_name, 4), ';' ) FROM information_schema. TABLES WHERE table_name LIKE 'ct%'; 批量复制一下到Notepad++中,只保留sql语句,再复

MySQL学习之创建、修改、删除表

1.如何创建表结构? 语法格式如下:    CREATE TABLE [IF NOT EXISTS] 表名 (           字段1 数据类型 [完整性约束条件],           字段2 数据类型 [完整性约束条件],           ....           字段n 数据类型 [完整性约束条件]          ); 说明 :[IF NOT EXISTS] 为可选字段,加上此选项后如果创建的数据表已经存在,不会报错,只会出现警告信息,而不会报错,如果不加此选项会出现报错信