Вставить несколько строк из других вставок CTE - PullRequest
0 голосов
/ 27 января 2020
WITH wms_monitor_log AS (
INSERT INTO
    data_monitoring_wms (doctype)
VALUES
    ('Income') RETURNING id), 


wms_monitor_log_dale as (
INSERT into
    data_monitoring_wms_dale (fk1187, fk1158)
SELECT
    wml.id,
    1052
FROM
    wms_monitor_log wml RETURNING fk1187 as log_id) 


INSERT into data_monitoring_wms_dale (fk1187, fk1184)
SELECT    wmldale.log_id,    100 FROM wms_monitor_log_dale wmldale 
union
SELECT   wmldale.log_id,     200 FROM wms_monitor_log_dale wmldale
union
SELECT   wmldale.log_id,     300 FROM wms_monitor_log_dale wmldale

Я бы предположил, что CTE wms_monitor_log_dale будет вызываться 3 раза. Но на самом деле это называется только один раз. Это из-за какой-то оптимизации плана в пост-прогрессе или результат всегда будет одинаковым?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...