【发布时间】:2015-01-29 02:56:38
【问题描述】:
我想替换所有表中的子字符串,说我想在 postgres 中用“Centre”替换“Center”。那么有没有办法做到这一点?我发现了一个similar 问题来替换特定列中的子字符串。
仅供参考。 :我正在使用“pgAdmin III”。 我无法通过解决类似问题来解决我的问题。我不知道任何表和任何列名。所以我想替换整个数据库和所有列中的值。
【问题讨论】:
-
正如您在链接到的问题中所回答的那样:
update table set field = replace(field, 'cat', 'dog')。根据需要对每个表(和字段)执行此操作。对于大规模更改,您还可以转储数据,在 .sql 文件中查找/替换,然后重新导入。 -
我尝试这样做但无法在整个数据库中替换。
-
因为你做不到。您一次只能修改一个表,因此需要遍历所有表的列表,并使用每个表的所有适用列运行查询。或者,如果您确定要批发,转储数据,查找/替换,重新导入。
-
我不知道所有具有该数据值的表和列名,因此使用给定的方法是不可能的。如果您能说明更多或从问题中删除重复的标志,将不胜感激。
-
@PuneetPurohit 你知道哪些表可以执行此任务吗?以及哪些列??
标签: database postgresql replace dynamic-sql