替换整个数据库 mysql 命令或方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了替换整个数据库 mysql 命令或方法相关的知识,希望对你有一定的参考价值。

如何不指定数据库表和字段,替换300多个数据表里所有字段内的内容。
因为数据库表有300多个,每个表里的字段也不一样,怎样弄一个命令批量把所有表里所有字段内的“开心”替换成“快乐” 。语句怎么写呢?

下面这个是需要每次都指定数据表和字段,我现在数据库里300多个表,不指定,全部替换可以吗?
update pw_tmsgs set content=replace(content,'XXX','YYY')

导出为sql文件,然后用notepad++打开,ctrl+h来个全部替换,再导入sql文件,完美了! 参考技术A 支持一楼,先导出表及表数据到.sql文件,然后用文本编辑器打开,查找“开心”替换成“快乐” ,然后重新导入到数据库。 参考技术B 这样纵使有办法,效率也会非常低。可以尝试将数据导出为文本,再替换后导入进去。 参考技术C 写一个存储过程来遍历所有表中每个字段的值,如果值包含“开心”则用“快乐”替换。 参考技术D 你用的是什么数据库?

在实时 mongodb 机器上更新(或替换)整个数据库集合的最佳方法是啥?

【中文标题】在实时 mongodb 机器上更新(或替换)整个数据库集合的最佳方法是啥?【英文标题】:What is the best way to update (or replace) an entire database collection on a live mongodb machine?在实时 mongodb 机器上更新(或替换)整个数据库集合的最佳方法是什么? 【发布时间】:2019-10-26 13:15:13 【问题描述】:

我每月都会收到一个数据源,我正在对其进行解析并放入 MongoDB 数据库。每个月都会更新一些数据,并将一些新条目添加到现有集合中。源文件有几 GB 大。除了这些每月更新之外,数据根本不会改变。

最终,该数据库将上线,如果可能,我希望在这些每月更新期间避免出现任何停机时间。在不停机的情况下更新数据库的最佳方法是什么?


This question 基本上正是我所要求的,但不适用于 MongoDB 数据库。接受的答案是上传新版本的数据库,然后重命名新数据库以使用旧数据库。 但是,根据this question 的说法,要轻松重命名 MongoDB 数据库是不可能的。这使得该方法无法使用。

直观地说,我会尝试使用每个文档的唯一“gid”标识符(这是数据的属性,而不是 MongoDB 生成的“_id”)作为过滤器,迭代地“更新”整个数据库,但这可能是一种低效的做事方式。

我正在运行 MongoDB 版本 4.2.1

【问题讨论】:

【参考方案1】:

为什么您认为更新数据意味着停机?

听起来您不希望您的用户能够在负载中访问新数据。

如果是这种情况,策略可能是拥有 2 个数据库;现场和分期;与其将暂存数据库重命名为 live,不如重命名连接到它的客户端应用程序中的连接字符串。

还可以考虑使用mongodump和mongorestore复制数据库;尽管使用较大的数据库可能会更慢。

【讨论】:

以上是关于替换整个数据库 mysql 命令或方法的主要内容,如果未能解决你的问题,请参考以下文章

使用 awk 或其他方法替换文件中的整个字段值

查找和替换整个mysql数据库

查找和替换整个mysql数据库

使用 MySQL 查询查找和替换整个表中的文本

使用 MySQL 查询查找和替换整个表中的文本

使用 MySQL 查询查找和替换整个表中的文本