Распространять индексы, когда CREATE TABLE из двух таблиц в PostgreSQL - PullRequest
0 голосов
/ 26 сентября 2019

Я создаю таблицу, связывая две разные таблицы в PostgreSQL.Я делаю это с помощью такого предложения:

CREATE TABLE t_aux_prop_delay
AS
SELECT r.cell, r.kpi_name, r.the_geom, d.max as pd_end_point, round(k.avg_samples, 2) AS avg_samples
from t_cell_regions r, kpi_definition d,
    (
    SELECT cell, kpi_name, avg(kpi_value) AS avg_samples
    from t_prop_delay_values
    GROUP BY cell, kpi_name
    ) k
WHERE r.kpi_name = d.kpi_name
AND r.cell = k.cell
AND r.kpi_name = k.kpi_name
ORDER BY r.cell, d.max;

Я хочу знать, возможно ли распространить индексы из одной из этих таблиц в новую таблицу, поэтому у меня нетчтобы создать их снова и снова.

1 Ответ

0 голосов
/ 26 сентября 2019

Может быть, этот выбор поможет вам:

SELECT REPLACE(indexdef, indexname, indexname||1) 
FROM pg_indexes 
WHERE TABLENAME = 'YOUR_TABLE_NAME';

Он даст вам код "CREATE INDEX" с другим именем (поэтому я добавил / конкатенировал 1 в конце).Вы создаете новый объект, поэтому он должен иметь другое имя ...

А вот еще один код, в котором вы также можете получить код "CREATE INDEX" с другим именем таблицы.

SELECT REPLACE(REPLACE(indexdef, indexname, indexname||1), tablename, 'your_tablename') 
FROM pg_indexes 
WHERE TABLENAME = 'personeel_medspec';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...