1
我有一个数据库中有很多表。其中一些名称以“mytable_”开头。那些表有一些索引。现在我需要将这些索引也移动到具有相似表格的不同服务器。Postgres脚本创建一个脚本来创建给定表上的现有索引
我想要一个脚本,它将创建我的本地服务器上给定表中的所有索引。
另外我想这样做,如果这个索引已经创建它不会崩溃。
如何能将它的Postgres(PG管理员)
我有一个数据库中有很多表。其中一些名称以“mytable_”开头。那些表有一些索引。现在我需要将这些索引也移动到具有相似表格的不同服务器。Postgres脚本创建一个脚本来创建给定表上的现有索引
我想要一个脚本,它将创建我的本地服务器上给定表中的所有索引。
另外我想这样做,如果这个索引已经创建它不会崩溃。
如何能将它的Postgres(PG管理员)
您可以使用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
是用来“注入”的IF NOT EXISTS
从而使语句不会失败,如果这样的索引已经存在于目标数据库中。
只是将该查询的结果后台打印到文件中。