Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
create table cargos ( codigo int primary key, nome varchar(20) ); create table departamentos ( codigo int primary key, nome varchar(20), ramal int ); create table funcionarios ( matricula int primary key, nome varchar(50), cpf char(11), endereco varchar(250), salario float, cod_cargo int references cargos, lotacao int references departamentos ); insert into cargos values (1, 'Diretor'); insert into cargos values (2, 'Vendedor'); insert into cargos values (3, 'Gerente'); insert into cargos values (4, 'Segurança'); insert into cargos values (5, 'Auxiliar'); insert into departamentos values (1, 'COMERCIAL', 123); insert into departamentos values (2, 'DIRETORIA', 456); insert into departamentos values (3, 'FINANCEIRO', 789); insert into departamentos values (4, 'GERENCIA', null); insert into departamentos values (5, 'RH', null); insert into departamentos values (6, 'RECEPCAO', null); insert into departamentos values (7, 'SEGURANCA', null); insert into departamentos values (8, 'ADMINISTRATIVO', null); insert into departamentos values (9, 'COZINHA', null); insert into departamentos values (10, 'LIMPEZA', null); CREATE OR REPLACE FUNCTION criar_func() RETURNS integer AS $BODY$ declare num int; declare dep int; declare cargo int; BEGIN num := 1; dep := 0; cargo := 0; while (num <= 300000) loop insert into funcionarios (matricula, nome, endereco, salario, cpf, lotacao, cod_cargo) values (num, 'Nome ' || num::varchar, 'Endereço ' || num::varchar, num / (dep + 1), num::varchar, dep + 1, cargo + 1); dep := (dep + 1) % 10; cargo := (cargo + 1) % 5; num := num + 1; end loop; return 0; end; $BODY$ LANGUAGE plpgsql VOLATILE COST 100; ALTER FUNCTION criar_func() OWNER TO postgres; select criar_func();
Compartilhar