PostgreSQL - Inserir vários registros para testes
Muitas vezes quando estamos desenvolvendo, necessitamos de uma tabela populada no banco de dados para realizar alguns testes e dependendo da quantidade de registros torna-se um pouco inviável inserir um a um. Uma boa maneira de popular a tabela é utilizando uma função de geração em série.
Como exemplo, vamos criar a seguinte tabela:
Agora a próxima instrução irá inserir 1000 (um mil) registros nessa tabela:
Também é possível gerar um valor randômico para alguns campos utilizando a função RANDOM.
Agora para exemplificar, iremos inserir mais 1000 (um mil) registros e para variar o uso da função de série, o id será gerado entre o intervalo de 1001 e 3000 alternando de 2 em 2:
Consulte esse link do manual para mais detalhes do uso da função GENERATE_SERIES.
Como exemplo, vamos criar a seguinte tabela:
CREATE TABLE funcionario ( id INTEGER, nome TEXT, nascimento DATE, funcao TEXT, salario NUMERIC(8, 2) );
Agora a próxima instrução irá inserir 1000 (um mil) registros nessa tabela:
INSERT INTO funcionario SELECT serie.id, 'João', '1983-03-17', 'Vendedor', 2400.00 FROM generate_series(1, 1000) AS serie (id);
Também é possível gerar um valor randômico para alguns campos utilizando a função RANDOM.
Agora para exemplificar, iremos inserir mais 1000 (um mil) registros e para variar o uso da função de série, o id será gerado entre o intervalo de 1001 e 3000 alternando de 2 em 2:
INSERT INTO funcionario SELECT serie.id, (string_to_array('João,Maria,José,Antônio', ','))[floor((random() * 4 + 1))], '01-01-1990'::DATE - (random() * ('01-01-1990'::DATE - '01-01-1970'))::INTEGER, (string_to_array('Vendedor,Gerente', ','))[floor((random() * 2 + 1))], floor(random() * 3000) FROM generate_series(1001, 3000, 2) AS serie (id);
Consulte esse link do manual para mais detalhes do uso da função GENERATE_SERIES.
Comentários
Postar um comentário