Автоматически вставлять большое количество записей в таблицу postgresSQL - PullRequest
0 голосов
/ 21 февраля 2020

Мне нужно заполнить мою таблицу случайным образом большим количеством записей в PostgresSQL, например, 200k

CREATE TABLE qr_code.tbl_transaction (
    transaction_id varchar NOT NULL,
    importo numeric NOT NULL,
    alias varchar NOT NULL,
    order_id varchar NOT NULL,
    filiale varchar NOT NULL,
    descrizione varchar NOT NULL,
    data_creazione timestamp NOT NULL,
    terminale varchar NOT NULL,
    data_esecuzione timestamp NULL,
    chiave_movimento_prenotata varchar NULL,
    stato varchar NULL,
    codice_fiscale varchar(16) NULL,
    CONSTRAINT tbl_transaction_pk PRIMARY KEY (transaction_id)
);

Как я могу сделать это быстро?

1 Ответ

1 голос
/ 21 февраля 2020

Вы можете использовать generate_series() для генерации большого количества строк и использовать random () для генерации случайных значений.

Что-то вроде:

insert into tbl_transaction (transaction_id, importo, alias, order_id, filiale, descrizione, data_creazione, terminale, data_esecuzione, chiave_movimento_prenotata, stato, codice_fiscale)
select g.id::text, 
       random() * 1000,
       'some alias',
       (random()*10000 + 1)::text,
       md5(random()::text),
       md5(random()::text),
       timestamp '2000-01-01' + make_interval(days => (random() * 7500 + 1)::int),
       md5(random()::text),
       timestamp '2000-01-01' + make_interval(days => (random() * 7500 + 1)::int),
       md5(random()::text), 
       case (id % 5) + 1
         when 1 then 'one'
         when 2 then 'two'
         when 3 then 'three'
         when 4 then 'four'
         when 5 then 'five'
         else 'unknonw'
       end,
       'some_codice'
from generate_series(1,200000) as g(id);
...