Есть ли способ добавить одну и ту же строку несколько раз с разными идентификаторами в таблицу с помощью postgresql?

Я пытаюсь добавить одни и те же данные для строки в свою таблицу x раз в postgresql. Есть ли способ сделать это без ручного ввода одних и тех же значений x количество раз? Я ищу эквивалент go[count] в sql для postgres... если он существует.

Что такое "идти [количество]"?

Bergi 23.04.2022 05:13
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
3
1
24
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Идея

Создайте набор результатов заданного размера и перекрестно соедините его с записью, которую вы хотите вставить x раз. Чего все еще не хватает, так это генерации правильных значений PK. Конкретное предложение потребует более подробной информации о модели данных.

Запрос

Пример запроса ниже предполагает, что ваши значения PK генерируются автоматически.

CREATE TABLE test ( id SERIAL, a VARCHAR(10), b VARCHAR(10) );

INSERT INTO test (a, b)
    WITH RECURSIVE Numbers(i) AS (
           SELECT 1
        UNION ALL
           SELECT i + 1
             FROM Numbers
            WHERE i < 5 -- This is the value `x`
    )
         SELECT adhoc.*
           FROM Numbers n
     CROSS JOIN ( -- This is the single record to be inserted multiple times
                   SELECT 'value_a' a
                        , 'value_b' b
                ) adhoc
 ;

Посмотрите его в действии в эта бд рабочий пример.

Примечание / ссылка

Решение взято из здесь с небольшими изменениями (существует множество других решений для генерации x последовательных чисел с помощью иерархических/рекурсивных запросов SQL, поэтому выбор ссылки несколько произволен).

Ответ принят как подходящий

Используйте функцию generate_series(), например:

insert into my_table
select id, 'alfa', 'beta'
from generate_series(1,4) as id;

Проверьте это в дб <> рабочий пример.

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