Advertisement
joaofabioma

gerador pessoas

May 25th, 2022 (edited)
1,310
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- SCHEMA: gerador
  2.  
  3. -- DROP SCHEMA IF EXISTS gerador ;
  4.  
  5. CREATE SCHEMA IF NOT EXISTS gerador
  6.     AUTHORIZATION postgres;
  7.  
  8.  
  9. --//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--
  10. ----//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//
  11. --//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--
  12.  
  13.    
  14. -- Table: gerador.pessoa
  15.  
  16. -- DROP TABLE IF EXISTS gerador.pessoa;
  17.  
  18. CREATE TABLE IF NOT EXISTS gerador.pessoa
  19. (
  20.     id bigserial NOT NULL,
  21.     content json,
  22.     datahora timestamp without time zone DEFAULT CURRENT_TIMESTAMP(0),
  23.     CONSTRAINT pessoa_pkey PRIMARY KEY (id)
  24. )
  25. TABLESPACE pg_default;
  26.  
  27. ALTER TABLE IF EXISTS gerador.pessoa
  28.     OWNER to postgres;
  29.  
  30.  
  31. --//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--
  32. ----//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//
  33. --//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--
  34.  
  35.  
  36. -- Table: gerador.pessoas
  37.  
  38. -- DROP TABLE IF EXISTS gerador.pessoas;
  39.  
  40. CREATE TABLE IF NOT EXISTS gerador.pessoas
  41. (
  42.     id BIGSERIAL NOT NULL,
  43.     nome character varying(150) COLLATE pg_catalog."default",
  44.     idade integer,
  45.     cpf character varying(11) COLLATE pg_catalog."default",
  46.     rg character varying(15) COLLATE pg_catalog."default",
  47.     data_nasc date,
  48.     sexo character varying(1) COLLATE pg_catalog."default",
  49.     signo character varying(15) COLLATE pg_catalog."default",
  50.     mae character varying(150) COLLATE pg_catalog."default",
  51.     pai character varying(150) COLLATE pg_catalog."default",
  52.     email character varying(150) COLLATE pg_catalog."default",
  53.     senha character varying(30) COLLATE pg_catalog."default",
  54.     cep character varying(8) COLLATE pg_catalog."default",
  55.     endereco character varying(200) COLLATE pg_catalog."default",
  56.     numero integer,
  57.     bairro character varying(120) COLLATE pg_catalog."default",
  58.     cidade character varying(80) COLLATE pg_catalog."default",
  59.     estado character varying(2) COLLATE pg_catalog."default",
  60.     telefone_fixo character varying(11) COLLATE pg_catalog."default",
  61.     celular character varying(12) COLLATE pg_catalog."default",
  62.     altura numeric(3,2),
  63.     peso integer,
  64.     tipo_sanguineo character varying(3) COLLATE pg_catalog."default",
  65.     cor character varying(15) COLLATE pg_catalog."default",
  66.     CONSTRAINT pessoas_pkey PRIMARY KEY (id)
  67. )
  68.  
  69. TABLESPACE pg_default;
  70.  
  71. ALTER TABLE IF EXISTS gerador.pessoas
  72.     OWNER to postgres;
  73. -- Index: pessoas_estado
  74.  
  75. -- DROP INDEX IF EXISTS gerador.pessoas_estado;
  76.  
  77. CREATE INDEX IF NOT EXISTS pessoas_estado
  78.     ON gerador.pessoas USING btree
  79.     (estado COLLATE pg_catalog."default" ASC NULLS LAST)
  80.     TABLESPACE pg_default;
  81.    
  82.  
  83. -- FUNCTION: gerador.fn_savepessoas()
  84.  
  85. -- DROP FUNCTION IF EXISTS gerador.fn_savepessoas();
  86.  
  87. CREATE OR REPLACE FUNCTION gerador.fn_savepessoas()
  88.     RETURNS trigger
  89.     LANGUAGE 'plpgsql'
  90.     COST 100
  91.     VOLATILE NOT LEAKPROOF SECURITY DEFINER
  92.     SET search_path=gerador
  93. AS $BODY$
  94. BEGIN
  95.     IF TG_OP = 'INSERT' THEN
  96.         INSERT INTO pessoas(nome, idade, cpf, rg, data_nasc, sexo, signo, mae, pai, email, senha, cep, endereco, numero, bairro, cidade, estado, telefone_fixo, celular, altura, peso, tipo_sanguineo, cor)
  97.             SELECT
  98.                 (c->>'nome')::VARCHAR(150) AS nome,
  99.                 (c->>'idade')::INTEGER AS idade,
  100.                 regexp_replace((c->>'cpf'), '\D', '', 'g')::VARCHAR(11) AS CPF,
  101.                 (c->>'rg')::VARCHAR(15) AS rg,
  102.                 (c->>'data_nasc')::DATE AS data_nasc,
  103.                 substring((c->>'sexo'), 1, 1)::VARCHAR(1) AS sexo,
  104.                 (c->>'signo')::VARCHAR(15) AS signo,
  105.                 (c->>'mae')::VARCHAR(150) AS mae,
  106.                 (c->>'pai')::VARCHAR(150) AS pai,
  107.                 (c->>'email')::VARCHAR(150) AS email,
  108.                 (c->>'senha')::VARCHAR(30) AS senha,
  109.                 regexp_replace((c->>'cep'), '\D', '', 'g')::VARCHAR(8) AS CEP,
  110.                 (c->>'endereco')::VARCHAR(200) AS endereco,
  111.                 (c->>'numero')::INTEGER AS numero,
  112.                 (c->>'bairro')::VARCHAR(120) AS bairro,
  113.                 (c->>'cidade')::VARCHAR(80) AS cidade,
  114.                 (c->>'estado')::VARCHAR(2) AS estado,
  115.                 regexp_replace((c->>'telefone_fixo'), '\D', '', 'g')::VARCHAR(11) AS telefone_fixo,  
  116.                 regexp_replace((c->>'celular'), '\D', '', 'g')::VARCHAR(12) AS celular,  
  117.                 REPLACE((c->>'altura'), ',', '.')::numeric(3,2) AS altura,
  118.                 (c->>'peso')::INTEGER AS peso,
  119.                 (c->>'tipo_sanguineo')::VARCHAR(3) AS tipo_sanguineo,
  120.                 (c->>'cor')::VARCHAR(15) AS cor
  121.             FROM
  122.                 json_array_elements(NEW.content) c;
  123.     END IF;
  124.     RETURN NEW;
  125. END;
  126. $BODY$;
  127.  
  128. ALTER FUNCTION gerador.fn_savepessoas()
  129.     OWNER TO postgres;
  130.  
  131.  
  132. -- Trigger: insert_pessoas
  133.  
  134. -- DROP TRIGGER IF EXISTS insert_pessoas ON gerador.pessoa;
  135.  
  136. CREATE TRIGGER insert_pessoas
  137.     AFTER INSERT
  138.     ON gerador.pessoa
  139.     FOR EACH ROW
  140.     EXECUTE FUNCTION gerador.fn_savepessoas();
  141.    
  142.    
  143. --//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--
  144. ----//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//
  145. --//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//-- 
  146.    
  147.  
  148.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement