mysql 数据库数据订正

mysql 数据库数据订正

http://blog.itpub.net/22664653/viewspace-717175/

工作过程中时常遇到数据订正的需求,该操作本身不难。操作时要求能够保持回滚~对于能够满足回滚的要求,我通常执行备份表,然后执行变更!如果发送订正错误或者用户要求回滚的时候,就完全恢复整个表,这样做会有多余的操作,因为我们只要

实际上可以选择备份要进行更正的数据!比如如下需求:

将表resource中usage_type=‘unused‘ 并且 user_id=166 的记录更新为user_id=169 !更新100条!

1 首先备份表

create table test.resource_20120221 as

select * from resource where usage_type=‘unused‘ and user_id=166 order by id limit 100;

2 执行数据订正操作

update resource set user_id=169 where user_id=166 and id in ( select id from test.resource_20120221);

如果需要回滚的话,只需执行

update resource set user_id=166 where id in ( select id from test.resource_20120221);

即可!

这里涉及到小批量数据的订正,如果大量的数据,就要使用批量提交的方法了!

附上:

M-M架构的DDL变更技巧

l  M-M 复制架构,只有一台提供全部或主数据服务

推荐DDL语句,在当下M-M架构中属于备用数据库服务器上优先执行,有四项优点:

1 不立即影响数据库提供的 数据服务;

2 不阻塞主备之间数据复制的日志恢复操作;

3 DDL语句执行过程,若出问题只影响备库的稳定性,而很少会影响主库;

4 若有数据服务无缝切换功能(例如:heartbeat、自主数据层等),可以在备库执行完成后,进行数据服务提供的主备库切换,尤其是数据容量大的表变更时,可以减少对业务影响程度及减少停机维护时间和次数;

具体操作

时间: 2024-08-02 02:46:29

mysql 数据库数据订正的相关文章

solr 4.8+mysql数据库数据导入 + mmseg4j中文全文索引 配置笔记

1.如何将solr部署,请参考之前的文章 2.按上述配置好后,在solr_home文件夹中,将包含collection1文件夹,这就是solr的一个实例.下面我们来看看collection1中的文件内容. collection1中包含conf和data两个子文件夹.data中包含tlog和index(如果没有也没关系,稍后再solr建立索引时,将会被创建).tlog是记录日志的文件夹,index是存放索引的文件夹.conf中包含lang文件夹和若干文件.lang文件夹中包含的是词库文件,但是so

根据字段条件清理mysql数据库数据

根据字段条件清理mysql数据库数据 背景 线上某个数据库有1000个分库的DB,磁盘告警,每个库的大小都不是很大但是加起来就非常大了.手动根据时间字段来清理数据不太现实,于是决定写脚本来删除指定时间以前的数据. 脚本: #/bin/bash ##auth by qunyingliu ## files in xxx     HOST=$1 DBPORT=3306 USER="xxxx" PASSWORD="xxxx" DB_SKIP_CLEAN="mysq

mysql 数据库数据迁移 The user specified as a definer ('root'@'%') does not exist 解决方法

从一个数据库数据迁移到本地localhost 程序在调用到数据库的视图时报错,直接在数据库中打开视图时也报错,类似: mysql 1449 : The user specified as a definer ('montor'@'%') does not exist 经查,是权限问题,解决办法: 运行:grant all privileges on *.* to [email protected]"%" identified by "."; 之后打开视图时便不会报错

Ubuntu上更改MySQL数据库数据存储目录

之前写过一篇博客"MySQL更改数据库数据存储目录",当时的测试环境是RHEL和CentOS,谁想最近在Ubuntu下面更改MySQL数据库数据存储目录时遇到了之前未遇到的问题,之前的经验用不上了(或者说之前的总结不是太全面),修改完MySQL数据库数据存储目录后重启MySQL,发现MySQL服务无法启动. [email protected]:/etc/mysql/mysql.conf.d# service mysql start   Job for mysql.service fai

MySql数据库数据类型和Sql Server 数据库数据类型之间的差异

1. MySQL支持enum和set类型,SQL Server不支持:2. MySQL不支持nchar.nvarchar.ntext类型:3. MySQL数据库的递增语句是AUTO_INCREMENT,而MS SQL是identity(1,1):4. MS SQL默认到处表创建语句的默认值表示是((0)),而在MySQL里面是不允许带两括号的:5. MySQL需要为表指定存储类型:6. MS SQL识别符是[],[type]表示他区别于关键字,但是MySQL却是 `,也就是按键1左边的那个符号:

【转】MYSQL数据库数据拆分之分库分表总结

http://wentao365.iteye.com/blog/1740691 数据存储演进思路一:单库单表单库单表是最常见的数据库设计,例如,有一张用户(user)表放在数据库db中,所有的用户都可以在db库中的user表中查到.数据存储演进思路二:单库多表随着用户数量的增加,user表的数据量会越来越大,当数据量达到一定程度的时候对user表的查询会渐渐的变慢,从而影响整个DB的性能.如果使用MySQL, 还有一个更严重的问题是,当需要添加一列的时候,mysql会锁表,期间所有的读写操作只能

MySQL数据库数据存放位置修改

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一.MySQL 是开源的,所以你不需要支付额外的费用.MySQL 对 PHP 有很好的支持,PHP是目前最流行的 Web 开发语言.大部分的PHP开发者都会去学习MySQL.MySQL是可以

MySQL数据库数据信息迁移

环境内核信息: [[email protected] ~]# uname -a Linux lodboyedu-01 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:29:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux 备份数据库中的数据 [[email protected] tools]# /application/mysql/bin/mysqldump -u root -p123456 --all-databases

mysql数据库数据变化实时监控

对于二次开发来说,很大一部分就找找文件和找数据库的变化情况 对于数据库变化.还没有发现比较好用的监控数据库变化监控软件. 今天,我就给大家介绍一个如何使用mysql自带的功能监控数据库变化 1.打开数据库配置文件my.ini (一般在数据库安装目录)(D:\MYSQL) 2.在数据库的最后一行添加 log=log.txt 代码 3.重启mysql数据库 4.去数据库数据目录 我的是(D:\MYSQL\data) 你会发现多了一个log.txt文件 我的是在C:\Documents and Set