Использование хранимой процедуры для вставки данных в таблицу из нескольких таблиц - PullRequest
0 голосов
/ 02 апреля 2020

1.У меня есть таблица indexes_list (node_id (целое число PK ), indexrelid (oid PK ), имя схемы (имя), indexrelid (имя), и это пустая таблица .

2.У меня есть узлы таблицы (node_id (целое число PK ), имя_узла (имя), connstr (текст), last_snap_id (целое число), и у меня уже есть строка в таблице (1, local, dbname = postgres, 0), и эта таблица имеет автоматически сгенерированную последовательность ('node_node_id_seq')

3. Мне нужно собирать данные из pg_stat_user_indexes (indexrelid, schemaname, indexrelname)

Вопрос: мне нужно создать хранимую процедуру, чтобы вставить данные в indexes_list из нескольких узлов таблицы и pg_stat_user_indexes?

1 Ответ

0 голосов
/ 02 апреля 2020

Нет, вам не нужна функция или хранимая процедура для копирования данных из нескольких таблиц в другую.

Пример:

CREATE TEMPORARY TABLE t1 (c INT);
INSERT INTO t1 VALUES (42);

CREATE TEMPORARY TABLE t2 (c INT);
INSERT INTO t1 VALUES (49);

CREATE TEMPORARY TABLE t3 (c INT);

Вставка данных из t1 и t2 в t3 (все таблицы имеют одинаковое количество столбцов и совпадают типы данных):

INSERT INTO t3
SELECT c FROM t1
UNION ALL
SELECT c FROM t2;

Содержимое t3:

SELECT * FROM t3;

 c  
----
 42
 49
(2 Zeilen)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...