查询替换数据库所有表中的术语
Posted
技术标签:
【中文标题】查询替换数据库所有表中的术语【英文标题】:query to replace term in all tables of database 【发布时间】:2017-08-09 07:21:56 【问题描述】:我想搜索http://example.com
并替换为https://example.com
。
我知道我可以使用这种方法定位特定的表和列:
UPDATE table_name SET post_content = REPLACE(column_name, 'http://example.com', 'https://example.com');
但是如何运行针对所有表/列的查询:整个数据库?
【问题讨论】:
Search & replace 'http' to 'https' in database的可能重复 【参考方案1】:有两种方法可以做到这一点。第一个是通过 information_schema 创建 SQL UPDATE 并将其作为准备好的语句执行。这是很多工作。
如果可以进行替换,则必须查看每一列,因此必须忽略 INTS 和 ENUM 等。
第二种方法不是真正的 SQL 更改,但它有效:从您的数据库生成一个完整的 SQL-Dump,并通过编辑器或通过命令行使用 AWK 或 SED 在此文件中进行更改。在此之后您可以导入更改的文件
【讨论】:
【参考方案2】:进行数据库转储并将其作为文本文件打开。查找和替换。保存然后重新导入。
据我所知,我认为您不能在一个查询中对所有表使用 REPLACE。
【讨论】:
以上是关于查询替换数据库所有表中的术语的主要内容,如果未能解决你的问题,请参考以下文章