无法获得索引 psycopg2 的定义

unable to get defination of an index psypg2

我需要在 table 上重新创建索引,因为我必须将大量数据插入 table。 我正在尝试使用

在 postgres 中获取索引的定义
SELECT pg_get_indexdef('start_date_sr_index_its'::regclass);

它有效,但是当我尝试 运行 来自 psycopg2 的相同命令时,它说关系不存在

psycopg2.ProgrammingError: relation "start_date_sr_index_its" does not exist
LINE 1: SELECT pg_get_indexdef('start_date_sr_index_its'::regclass);
                               ^

我试图用 " 替换 ' 但它说的是一样的

在 postgres 中获取索引定义的更简单方法是直接通过 pg_index table 获取它,而不是使用实用函数 pg_get_indexdef().

您可以简单查询

SELECT indexdef FROM pg_indexes WHERE indexname = ''

你还可以从这个table.

得到schemanametablenametablespace