Создать временную таблицу, цикл, добавить данные и выбрать из них? запрос не имеет назначения для данных результатов

Я создаю временную таблицу, беру данные из нескольких таблиц и вставляю в нее данные. Когда я пытаюсь вернуть данные из таблицы, я получаю сообщение об ошибке

[42601] ERROR: query has no destination for result data Hint: If you want to discard the results of a SELECT, use PERFORM instead.

do
$$
    DECLARE
        sampleproductId   varchar;
        productIds        text[] := array [
            'abc1',
            'abc2'
            ];
        tId              varchar;
        DECLARE result  jsonb;
        DECLARE resultS jsonb[];
    begin
       CREATE TEMP TABLE IF NOT EXISTS product_temp_mapping
        (
            accountid      int,
            productUID      varchar,
            sampleproductId text
        );
        FOREACH sampleproductId IN ARRAY productIds
            LOOP
                tId := (select id
                        from product.product
                        where uid = sampleproductId);
                INSERT into product_temp_mapping (accountid, productUID, sampleproductId)
                select accountid, tId, sampleproductId
                from product.accountproductmap
                where productId = cast(tId as int);
            END LOOP;
        select * from product_temp_mapping;
    end ;
$$;

Это правильный способ сделать это? Это первый раз, когда я что-то делаю с временной таблицей

почему вы отметили mysql и postgresql? Который из них?

eshirvana 30.03.2021 05:33

Проблема в этом select * from product_temp_mapping;. Основная проблема заключается в том, что вы не можете RETURN ничего из анонимной (DO) функции, что, как я полагаю, именно то, что вы пытаетесь сделать. Следующая проблема заключается в том, что даже если вы делаете это в обычной функции, вам необходимо, как указано в сообщении об ошибке, назначить выход SELECT чему-то.

Adrian Klaver 30.03.2021 05:42

Зачем вообще временная таблица? Это можно сделать более эффективно с помощью всего одного оператора SELECT.

a_horse_with_no_name 30.03.2021 08:22

«Правильно ли это сделать?» - довольно широкий вопрос. Я должен ответить «нет».

Laurenz Albe 30.03.2021 10:25
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
4
30
0

Другие вопросы по теме