gpt4 book ai didi

sql - Postgres- 用于创建脚本以在给定表上创建现有索引的脚本

转载 作者:行者123 更新时间:2023-11-29 11:54:10 26 4
gpt4 key购买 nike

我有一个数据库,里面有很多表。其中一些的名称以“mytable_”开头。这些表有一些索引。现在我需要将这些索引也移动到具有相似表的不同服务器。

我想要一个脚本来创建本地服务器上给定表中的所有索引。

另外,我想这样做,如果这个索引已经创建,它就不会崩溃。

如何在 Postgres 中完成 (pg admin)

最佳答案

您可以使用pg_get_indexdef() 来附加所有索引定义:

select replace(pg_get_indexdef(format('%I.%I', schemaname, indexname)::regclass), ' INDEX ', ' INDEX IF NOT EXISTS ')||';' as ddl
from pg_indexes
where schemaname = 'public'
and tablename like 'mytable\_%';

replace 用于“注入(inject)”IF NOT EXISTS,这样如果目标数据库中已经存在这样的索引,语句就不会失败。

只需将该查询的结果假脱机到一个文件中。

关于sql - Postgres- 用于创建脚本以在给定表上创建现有索引的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41183990/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com