-- -- -- -- SET statement_timeout = 0; SET client_encoding = 'UTF8'; SET standard_conforming_strings = off; SET check_function_bodies = false; SET client_min_messages = warning; SET escape_string_warning = off; -- -- -- -- CREATE SCHEMA teste; ALTER SCHEMA teste OWNER TO postgres; -- -- -- -- CREATE PROCEDURAL LANGUAGE plpgsql; ALTER PROCEDURAL LANGUAGE plpgsql OWNER TO postgres; SET search_path = public, pg_catalog; -- -- -- -- -- CREATE DOMAIN dm_codigo AS double precision; ALTER DOMAIN public.dm_codigo OWNER TO postgres; -- -- -- -- -- CREATE DOMAIN dm_data AS timestamp without time zone; ALTER DOMAIN public.dm_data OWNER TO postgres; -- -- -- -- -- CREATE DOMAIN dm_desccurto AS character varying(25); ALTER DOMAIN public.dm_desccurto OWNER TO postgres; -- -- -- -- -- CREATE DOMAIN dm_desclongo AS character varying(120); ALTER DOMAIN public.dm_desclongo OWNER TO postgres; -- -- -- -- -- CREATE DOMAIN dm_descnormal AS character varying(60); ALTER DOMAIN public.dm_descnormal OWNER TO postgres; -- -- -- -- -- CREATE DOMAIN dm_exercicio AS smallint; ALTER DOMAIN public.dm_exercicio OWNER TO postgres; -- -- -- -- -- CREATE DOMAIN dm_logico AS character varying(1) CONSTRAINT dm_logico_check CHECK ((((VALUE)::text = ANY (ARRAY[('*'::character varying)::text, (''::character varying)::text])) OR (VALUE IS NULL))); ALTER DOMAIN public.dm_logico OWNER TO postgres; -- -- -- -- -- CREATE DOMAIN dm_numero AS integer DEFAULT 0; ALTER DOMAIN public.dm_numero OWNER TO postgres; -- -- -- -- -- CREATE DOMAIN dm_orgao AS character varying(2); ALTER DOMAIN public.dm_orgao OWNER TO postgres; -- -- -- -- -- CREATE DOMAIN dm_str10 AS character varying(10); ALTER DOMAIN public.dm_str10 OWNER TO postgres; -- -- -- -- -- CREATE DOMAIN dm_textocurto AS character varying(255); ALTER DOMAIN public.dm_textocurto OWNER TO postgres; -- -- -- -- -- CREATE DOMAIN dm_textomedio AS character varying(8000); ALTER DOMAIN public.dm_textomedio OWNER TO postgres; -- -- -- -- -- CREATE DOMAIN dm_tipodiretiva AS character varying(10) NOT NULL DEFAULT 'MENU'::character varying CONSTRAINT dm_tipodiretiva_check CHECK (((VALUE)::text = ANY (ARRAY[('MENU'::character varying)::text, ('CONTROLE'::character varying)::text, ('OPERACAO'::character varying)::text, ('FILTRO'::character varying)::text, ('RESTRICAO'::character varying)::text]))); ALTER DOMAIN public.dm_tipodiretiva OWNER TO postgres; -- -- -- -- -- CREATE DOMAIN dm_tipousuario AS character varying(10) NOT NULL DEFAULT 'USUARIO'::character varying CONSTRAINT dm_tipousuario_check CHECK (((VALUE)::text = ANY (ARRAY[('GRUPO'::character varying)::text, ('USUARIO'::character varying)::text]))); ALTER DOMAIN public.dm_tipousuario OWNER TO postgres; SET search_path = teste, pg_catalog; -- -- -- -- -- CREATE TYPE tp_teste AS ( cod integer, nome character varying(200) ); ALTER TYPE teste.tp_teste OWNER TO postgres; SET search_path = public, pg_catalog; -- -- -- -- -- CREATE FUNCTION sp_listar_fks(dependencia_orgao_exercicio character varying, OUT seq integer, OUT tabelamestre character varying, OUT campomestre character varying, OUT tabeladetalhe character varying, OUT campodetalhe character varying) RETURNS SETOF record LANGUAGE plpgsql AS $$ DECLARE V_CONSULTA RECORD; BEGIN SEQ := 0; FOR V_CONSULTA IN SELECT MESTRE.OID AS OID_MESTRE, MESTRE.RELNAME AS TABELA_MESTRE, DETALHE.OID AS OID_DETALHE, DETALHE.RELNAME AS TABELA_DETALHE, RELACAO.CONFKEY AS CAMPOS_MESTRE, RELACAO.CONKEY AS CAMPOS_DETALHE FROM PG_CONSTRAINT RELACAO INNER JOIN PG_CLASS MESTRE ON MESTRE.OID = RELACAO.CONFRELID INNER JOIN PG_CLASS DETALHE ON DETALHE.OID = RELACAO.CONRELID WHERE UPPER(RELACAO.CONTYPE) = UPPER('F') ORDER BY MESTRE.RELNAME, DETALHE.RELNAME LOOP BEGIN SEQ := SEQ + 1; TABELAMESTRE := V_CONSULTA.TABELA_MESTRE; TABELADETALHE := V_CONSULTA.TABELA_DETALHE; FOR I IN 1..ARRAY_UPPER(V_CONSULTA.CAMPOS_MESTRE, 1) LOOP SELECT CAMPO.ATTNAME FROM PG_ATTRIBUTE CAMPO WHERE CAMPO.ATTNUM = V_CONSULTA.CAMPOS_MESTRE[I] AND CAMPO.ATTRELID = V_CONSULTA.OID_MESTRE INTO CAMPOMESTRE; SELECT CAMPO.ATTNAME FROM PG_ATTRIBUTE CAMPO WHERE CAMPO.ATTNUM = V_CONSULTA.CAMPOS_DETALHE[I] AND CAMPO.ATTRELID = V_CONSULTA.OID_DETALHE INTO CAMPODETALHE; IF ((UPPER(DEPENDENCIA_ORGAO_EXERCICIO) = UPPER('S')) OR (UPPER(CAMPODETALHE) <> UPPER('COD_ORGAOEXERCICIO'))) THEN RETURN NEXT; END IF; END LOOP; END; END LOOP; RETURN; END; $$; ALTER FUNCTION public.sp_listar_fks(dependencia_orgao_exercicio character varying, OUT seq integer, OUT tabelamestre character varying, OUT campomestre character varying, OUT tabeladetalhe character varying, OUT campodetalhe character varying) OWNER TO postgres; -- -- -- -- -- CREATE FUNCTION sp_listar_tabelas(listar_views character varying, OUT tabela character varying, OUT modulo character varying) RETURNS SETOF record LANGUAGE plpgsql AS $$ DECLARE V_CONSULTA RECORD; V_VIEW VARCHAR(1); BEGIN V_VIEW := 'V'; IF UPPER(LISTAR_VIEWS) = 'S' THEN V_VIEW := ''; END IF; FOR V_CONSULTA IN SELECT UPPER(TRIM(PG_CLASS.RELNAME)) AS TAB FROM PG_CLASS WHERE UPPER(PG_CLASS.RELKIND) NOT IN ('I','S','T',V_VIEW) AND UPPER(PG_CLASS.RELNAME) NOT LIKE 'PG_%' AND UPPER(PG_CLASS.RELNAME) NOT LIKE 'SQL_%' AND UPPER(PG_CLASS.RELNAME) NOT LIKE 'SR_%' ORDER BY PG_CLASS.RELNAME LOOP BEGIN TABELA := V_CONSULTA.TAB; IF (SUBSTRING(TABELA FROM 1 FOR 3) = 'BUD') THEN MODULO := 'PLANEJAMENTO'; ELSIF (SUBSTRING(TABELA FROM 1 FOR 3) = 'BUS') THEN MODULO := 'GESTAO'; ELSIF (SUBSTRING(TABELA FROM 1 FOR 3) = 'RES') THEN MODULO := 'RESULTADO'; ELSIF (SUBSTRING(TABELA FROM 1 FOR 3) = 'VI_') THEN MODULO := 'VIEW'; ELSE MODULO := 'SISTEMA'; END IF; RETURN NEXT; END; END LOOP; RETURN; END $$; ALTER FUNCTION public.sp_listar_tabelas(listar_views character varying, OUT tabela character varying, OUT modulo character varying) OWNER TO postgres; SET search_path = teste, pg_catalog; -- -- -- -- -- CREATE FUNCTION fn_teste_in(IN iid integer, OUT oid integer, OUT oinfo character varying) RETURNS SETOF record LANGUAGE plpgsql AS $$declare r record; begin for oid, oinfo in select id, info from teste.tb_teste where id <> iid loop return next; end loop; return; end;$$; ALTER FUNCTION teste.fn_teste_in(IN iid integer, OUT oid integer, OUT oinfo character varying) OWNER TO postgres; -- -- -- -- -- CREATE FUNCTION teste.fn_teste_type(iid integer) RETURNS SETOF tp_teste LANGUAGE plpgsql AS $$ declare r record; t teste.tp_teste%ROWTYPE; begin for r in select id, info from teste.tb_teste where id <> iid loop t.cod = r.id; t.nome = r.info; return next t; end loop; return; end;$$; ALTER FUNCTION teste.fn_teste_type(iid integer) OWNER TO postgres; SET search_path = public, pg_catalog; SET default_tablespace = ''; SET default_with_oids = false; -- -- -- -- -- CREATE TABLE infoorgaoexercicio ( cod_orgaoexercicio dm_codigo NOT NULL, sessao dm_descnormal DEFAULT 'GERAL'::character varying NOT NULL, chave dm_descnormal NOT NULL, valor dm_textomedio, datinc dm_data, datalt dm_data, datexc dm_data, usuinc dm_codigo, usualt dm_codigo, usuexc dm_codigo ); ALTER TABLE public.infoorgaoexercicio OWNER TO postgres; -- -- -- -- -- CREATE TABLE infosistema ( sessao dm_descnormal DEFAULT 'GERAL'::character varying NOT NULL, chave dm_descnormal NOT NULL, valor dm_textomedio ); ALTER TABLE public.infosistema OWNER TO postgres; -- -- -- -- -- CREATE TABLE netproxy ( cod_netproxy dm_codigo NOT NULL, descricao dm_descnormal NOT NULL, habilitado dm_logico, servidor dm_descnormal, porta dm_numero, usuario dm_desccurto, senha dm_desccurto, socket dm_desccurto NOT NULL, datinc dm_data, datalt dm_data, datexc dm_data, usuinc dm_codigo, usualt dm_codigo, usuexc dm_codigo, CONSTRAINT ck_netproxy_socket CHECK (((socket)::text = ANY (ARRAY[('-'::character varying)::text, ('v4'::character varying)::text, ('v4a'::character varying)::text, ('v5'::character varying)::text]))) ); ALTER TABLE public.netproxy OWNER TO postgres; -- -- -- -- -- CREATE TABLE netsmtp ( cod_netsmtp dm_codigo NOT NULL, descricao dm_descnormal NOT NULL, proposito dm_desccurto NOT NULL, permissao dm_desccurto NOT NULL, cod_netproxy dm_codigo, autenticar dm_logico, servidor dm_descnormal NOT NULL, porta dm_numero, usuario dm_desccurto, senha dm_desccurto, email dm_descnormal NOT NULL, emaildesc dm_descnormal, seguranca dm_desccurto NOT NULL, infoextra dm_desccurto, datinc dm_data, datalt dm_data, datexc dm_data, usuinc dm_codigo, usualt dm_codigo, usuexc dm_codigo, CONSTRAINT ck_netsmtp_permissao CHECK (((permissao)::text = ANY (ARRAY[('restrito'::character varying)::text, ('compartilhado'::character varying)::text]))), CONSTRAINT ck_netsmtp_proposito CHECK (((proposito)::text = ANY (ARRAY[('interno'::character varying)::text, ('parametro'::character varying)::text, ('usuario'::character varying)::text, ('geral'::character varying)::text]))), CONSTRAINT ck_netsmtp_seguranca CHECK (((seguranca)::text = ANY (ARRAY[('-'::character varying)::text, ('tls1'::character varying)::text, ('ssl2'::character varying)::text, ('ssl23'::character varying)::text, ('ssl3'::character varying)::text]))) ); ALTER TABLE public.netsmtp OWNER TO postgres; -- -- -- -- -- CREATE TABLE orgao ( orgao dm_orgao NOT NULL, descricao dm_desclongo NOT NULL, status dm_str10, datinc dm_data, datalt dm_data, datexc dm_data, usuinc dm_codigo, usualt dm_codigo, usuexc dm_codigo ); ALTER TABLE public.orgao OWNER TO postgres; -- -- -- -- -- CREATE TABLE orgaoexercicio ( cod_orgaoexercicio dm_codigo NOT NULL, orgao dm_orgao NOT NULL, exercicio dm_exercicio NOT NULL, descricao dm_desclongo NOT NULL, status dm_str10, sistema_terceiro dm_logico, datinc dm_data, datalt dm_data, datexc dm_data, usuinc dm_codigo, usualt dm_codigo, usuexc dm_codigo ); ALTER TABLE public.orgaoexercicio OWNER TO postgres; -- -- -- -- -- CREATE TABLE usuario ( tipo dm_tipousuario, somleitura dm_logico, cod_usuario dm_codigo NOT NULL, usuario dm_desccurto NOT NULL, nome dm_descnormal, descricao dm_desclongo, prioridade dm_numero, gerenciador dm_logico, senha dm_textocurto, senhafixa dm_logico, senhaativa dm_logico, senhaprefixo dm_desccurto, senhaulttroca dm_data, senhahistorico dm_textomedio, acessoativo dm_logico, acessobloqueado dm_logico, acessoremovido dm_logico, expiracao dm_data, cod_netsmtp dm_codigo, datinc dm_data, datalt dm_data, datexc dm_data, usuinc dm_codigo, usualt dm_codigo, usuexc dm_codigo ); ALTER TABLE public.usuario OWNER TO postgres; -- -- -- -- -- CREATE TABLE usuariodiretiva ( tipo dm_tipodiretiva, somleitura dm_logico, cod_usuariodiretiva dm_codigo NOT NULL, cod_usuario dm_codigo NOT NULL, diretiva dm_textocurto NOT NULL, valor dm_textomedio, datinc dm_data, datalt dm_data, datexc dm_data, usuinc dm_codigo, usualt dm_codigo, usuexc dm_codigo ); ALTER TABLE public.usuariodiretiva OWNER TO postgres; -- -- -- -- -- CREATE TABLE usuariogrupo ( somleitura dm_logico, cod_usuariogrupo dm_codigo NOT NULL, cod_usuario dm_codigo NOT NULL, cod_grupo dm_codigo NOT NULL, datinc dm_data, datalt dm_data, datexc dm_data, usuinc dm_codigo, usualt dm_codigo, usuexc dm_codigo ); ALTER TABLE public.usuariogrupo OWNER TO postgres; -- -- -- -- -- CREATE TABLE usuarioorgao ( cod_usuarioorgao dm_codigo NOT NULL, cod_usuario dm_codigo NOT NULL, cod_orgaoexercicio dm_codigo NOT NULL, datinc dm_data, datalt dm_data, datexc dm_data, usuinc dm_codigo, usualt dm_codigo, usuexc dm_codigo ); ALTER TABLE public.usuarioorgao OWNER TO postgres; -- -- -- -- -- CREATE VIEW vi_infosistema AS SELECT infosistema.sessao, infosistema.chave, infosistema.valor FROM infosistema; ALTER TABLE public.vi_infosistema OWNER TO postgres; -- -- -- -- -- CREATE VIEW vi_usuario AS SELECT usuario.tipo, usuario.somleitura, usuario.cod_usuario, usuario.usuario, usuario.nome, usuario.descricao, usuario.prioridade, usuario.gerenciador, usuario.senha, usuario.senhafixa, usuario.senhaativa, usuario.senhaprefixo, usuario.senhaulttroca, usuario.senhahistorico, usuario.acessoativo, usuario.acessobloqueado, usuario.acessoremovido, usuario.expiracao, usuario.cod_netsmtp, usuario.datinc, usuario.datalt, usuario.datexc, usuario.usuinc, usuario.usualt, usuario.usuexc FROM usuario; ALTER TABLE public.vi_usuario OWNER TO postgres; -- -- -- -- -- CREATE VIEW vi_usuariodiretiva AS SELECT usuariodiretiva.tipo, usuariodiretiva.somleitura, usuariodiretiva.cod_usuariodiretiva, usuariodiretiva.cod_usuario, usuariodiretiva.diretiva, usuariodiretiva.valor, usuariodiretiva.datinc, usuariodiretiva.datalt, usuariodiretiva.datexc, usuariodiretiva.usuinc, usuariodiretiva.usualt, usuariodiretiva.usuexc FROM usuariodiretiva; ALTER TABLE public.vi_usuariodiretiva OWNER TO postgres; SET search_path = teste, pg_catalog; -- -- -- -- -- CREATE SEQUENCE sq_teste START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; ALTER TABLE teste.sq_teste OWNER TO postgres; -- -- -- -- -- CREATE TABLE tb_teste ( id integer NOT NULL, info character varying(200) ); ALTER TABLE teste.tb_teste OWNER TO postgres; -- -- -- -- -- CREATE VIEW vi_teste AS SELECT tb_teste.id, tb_teste.info FROM tb_teste; ALTER TABLE teste.vi_teste OWNER TO postgres; SET search_path = public, pg_catalog; -- -- -- -- -- ALTER TABLE ONLY infoorgaoexercicio ADD CONSTRAINT pk_infoorgaoexercicio PRIMARY KEY (cod_orgaoexercicio, sessao, chave); -- -- -- -- -- ALTER TABLE ONLY infosistema ADD CONSTRAINT pk_infosistema PRIMARY KEY (sessao, chave); -- -- -- -- -- ALTER TABLE ONLY netproxy ADD CONSTRAINT pk_netroxy PRIMARY KEY (cod_netproxy); -- -- -- -- -- ALTER TABLE ONLY netsmtp ADD CONSTRAINT pk_netsmtp PRIMARY KEY (cod_netsmtp); -- -- -- -- -- ALTER TABLE ONLY orgao ADD CONSTRAINT pk_orgao PRIMARY KEY (orgao); -- -- -- -- -- ALTER TABLE ONLY orgaoexercicio ADD CONSTRAINT pk_orgaoexercicio PRIMARY KEY (cod_orgaoexercicio); -- -- -- -- -- ALTER TABLE ONLY usuario ADD CONSTRAINT pk_usuario PRIMARY KEY (cod_usuario); -- -- -- -- -- ALTER TABLE ONLY usuariodiretiva ADD CONSTRAINT pk_usuariodiretiva PRIMARY KEY (cod_usuariodiretiva); -- -- -- -- -- ALTER TABLE ONLY usuariogrupo ADD CONSTRAINT pk_usuariogrupo PRIMARY KEY (cod_usuariogrupo); -- -- -- -- -- ALTER TABLE ONLY usuarioorgao ADD CONSTRAINT pk_usuarioorgao PRIMARY KEY (cod_usuarioorgao); -- -- -- -- -- ALTER TABLE ONLY orgaoexercicio ADD CONSTRAINT un_orgaoexercicio01 UNIQUE (orgao, exercicio); -- -- -- -- -- ALTER TABLE ONLY usuario ADD CONSTRAINT un_usuario UNIQUE (usuario); SET search_path = teste, pg_catalog; -- -- -- -- -- ALTER TABLE ONLY tb_teste ADD CONSTRAINT pk_teste PRIMARY KEY (id); SET search_path = public, pg_catalog; -- -- -- -- -- CREATE INDEX id_infosistema ON infosistema USING btree (sessao, chave); -- -- -- -- -- CREATE INDEX id_usuariodiretiva ON usuariodiretiva USING btree (diretiva); -- -- -- -- -- CREATE RULE rl_usuario_delete AS ON DELETE TO vi_usuario DO INSTEAD DELETE FROM usuario WHERE ((usuario.cod_usuario)::double precision = (old.cod_usuario)::double precision); -- -- -- -- -- CREATE RULE rl_usuario_insert AS ON INSERT TO vi_usuario DO INSTEAD INSERT INTO usuario (tipo, somleitura, cod_usuario, usuario, nome, descricao, prioridade, gerenciador, senha, senhafixa, senhaativa, senhaprefixo, senhaulttroca, senhahistorico, acessoativo, acessobloqueado, acessoremovido, expiracao, cod_netsmtp) VALUES (new.tipo, new.somleitura, new.cod_usuario, new.usuario, new.nome, new.descricao, new.prioridade, new.gerenciador, new.senha, new.senhafixa, new.senhaativa, new.senhaprefixo, new.senhaulttroca, new.senhahistorico, new.acessoativo, new.acessobloqueado, new.acessoremovido, new.expiracao, new.cod_netsmtp); -- -- -- -- -- CREATE RULE rl_usuario_update AS ON UPDATE TO vi_usuario DO INSTEAD UPDATE usuario SET tipo = new.tipo, somleitura = new.somleitura, usuario = new.usuario, nome = new.nome, descricao = new.descricao, prioridade = new.prioridade, gerenciador = new.gerenciador, senha = new.senha, senhafixa = new.senhafixa, senhaativa = new.senhaativa, senhaprefixo = new.senhaprefixo, senhaulttroca = new.senhaulttroca, senhahistorico = new.senhahistorico, acessoativo = new.acessoativo, acessobloqueado = new.acessobloqueado, acessoremovido = new.acessoremovido, expiracao = new.expiracao, cod_netsmtp = new.cod_netsmtp WHERE ((usuario.cod_usuario)::double precision = (old.cod_usuario)::double precision); -- -- -- -- -- CREATE RULE rl_usuariodiretiva_delete AS ON DELETE TO vi_usuariodiretiva DO INSTEAD DELETE FROM usuariodiretiva WHERE ((usuariodiretiva.cod_usuariodiretiva)::double precision = (old.cod_usuariodiretiva)::double precision); -- -- -- -- -- CREATE RULE rl_usuariodiretiva_insert AS ON INSERT TO vi_usuariodiretiva DO INSTEAD INSERT INTO usuariodiretiva (tipo, somleitura, cod_usuariodiretiva, cod_usuario, diretiva, valor) VALUES (new.tipo, new.somleitura, new.cod_usuariodiretiva, new.cod_usuario, new.diretiva, new.valor); -- -- -- -- -- CREATE RULE rl_usuariodiretiva_update AS ON UPDATE TO vi_usuariodiretiva DO INSTEAD UPDATE usuariodiretiva SET tipo = new.tipo, somleitura = new.somleitura, cod_usuario = new.cod_usuario, diretiva = new.diretiva, valor = new.valor WHERE ((usuariodiretiva.cod_usuariodiretiva)::double precision = (old.cod_usuariodiretiva)::double precision); SET search_path = teste, pg_catalog; -- -- -- -- -- CREATE RULE rl_teste_insert AS ON INSERT TO vi_teste DO INSTEAD INSERT INTO tb_teste (id, info) VALUES (new.id, new.info); SET search_path = public, pg_catalog; -- -- -- -- -- ALTER TABLE ONLY infoorgaoexercicio ADD CONSTRAINT fk_infoorgaoexercicio FOREIGN KEY (cod_orgaoexercicio) REFERENCES orgaoexercicio(cod_orgaoexercicio); -- -- -- -- -- ALTER TABLE ONLY netproxy ADD CONSTRAINT fk_netproxy_usualt FOREIGN KEY (usualt) REFERENCES usuario(cod_usuario); -- -- -- -- -- ALTER TABLE ONLY netproxy ADD CONSTRAINT fk_netproxy_usuexc FOREIGN KEY (usuexc) REFERENCES usuario(cod_usuario); -- -- -- -- -- ALTER TABLE ONLY netproxy ADD CONSTRAINT fk_netproxy_usuinc FOREIGN KEY (usuinc) REFERENCES usuario(cod_usuario); -- -- -- -- -- ALTER TABLE ONLY netsmtp ADD CONSTRAINT fk_netsmtp_netproxy FOREIGN KEY (cod_netproxy) REFERENCES netproxy(cod_netproxy); -- -- -- -- -- ALTER TABLE ONLY netsmtp ADD CONSTRAINT fk_netsmtp_usualt FOREIGN KEY (usualt) REFERENCES usuario(cod_usuario); -- -- -- -- -- ALTER TABLE ONLY netsmtp ADD CONSTRAINT fk_netsmtp_usuexc FOREIGN KEY (usuexc) REFERENCES usuario(cod_usuario); -- -- -- -- -- ALTER TABLE ONLY netsmtp ADD CONSTRAINT fk_netsmtp_usuinc FOREIGN KEY (usuinc) REFERENCES usuario(cod_usuario); -- -- -- -- -- ALTER TABLE ONLY orgaoexercicio ADD CONSTRAINT fk_orgaoexercicio_orgao FOREIGN KEY (orgao) REFERENCES orgao(orgao); -- -- -- -- -- ALTER TABLE ONLY usuario ADD CONSTRAINT fk_usuario_netsmtp FOREIGN KEY (cod_netsmtp) REFERENCES netsmtp(cod_netsmtp); -- -- -- -- -- ALTER TABLE ONLY usuario ADD CONSTRAINT fk_usuario_usualt FOREIGN KEY (usualt) REFERENCES usuario(cod_usuario); -- -- -- -- -- ALTER TABLE ONLY usuario ADD CONSTRAINT fk_usuario_usuexc FOREIGN KEY (usuexc) REFERENCES usuario(cod_usuario); -- -- -- -- -- ALTER TABLE ONLY usuario ADD CONSTRAINT fk_usuario_usuinc FOREIGN KEY (usuinc) REFERENCES usuario(cod_usuario); -- -- -- -- -- ALTER TABLE ONLY usuariodiretiva ADD CONSTRAINT fk_usuariodiretiva_usualt FOREIGN KEY (usualt) REFERENCES usuario(cod_usuario); -- -- -- -- -- ALTER TABLE ONLY usuariodiretiva ADD CONSTRAINT fk_usuariodiretiva_usuario FOREIGN KEY (cod_usuario) REFERENCES usuario(cod_usuario); -- -- -- -- -- ALTER TABLE ONLY usuariodiretiva ADD CONSTRAINT fk_usuariodiretiva_usuexc FOREIGN KEY (usuexc) REFERENCES usuario(cod_usuario); -- -- -- -- -- ALTER TABLE ONLY usuariodiretiva ADD CONSTRAINT fk_usuariodiretiva_usuinc FOREIGN KEY (usuinc) REFERENCES usuario(cod_usuario); -- -- -- -- -- ALTER TABLE ONLY usuariogrupo ADD CONSTRAINT fk_usuariogrupo_grupo FOREIGN KEY (cod_grupo) REFERENCES usuario(cod_usuario); -- -- -- -- -- ALTER TABLE ONLY usuariogrupo ADD CONSTRAINT fk_usuariogrupo_usualt FOREIGN KEY (usualt) REFERENCES usuario(cod_usuario); -- -- -- -- -- ALTER TABLE ONLY usuariogrupo ADD CONSTRAINT fk_usuariogrupo_usuario FOREIGN KEY (cod_usuario) REFERENCES usuario(cod_usuario); -- -- -- -- -- ALTER TABLE ONLY usuariogrupo ADD CONSTRAINT fk_usuariogrupo_usuexc FOREIGN KEY (usuexc) REFERENCES usuario(cod_usuario); -- -- -- -- -- ALTER TABLE ONLY usuariogrupo ADD CONSTRAINT fk_usuariogrupo_usuinc FOREIGN KEY (usuinc) REFERENCES usuario(cod_usuario); -- -- -- -- -- ALTER TABLE ONLY usuarioorgao ADD CONSTRAINT fk_usuarioorgao_orgao FOREIGN KEY (cod_orgaoexercicio) REFERENCES orgaoexercicio(cod_orgaoexercicio); -- -- -- -- -- ALTER TABLE ONLY usuarioorgao ADD CONSTRAINT fk_usuarioorgao_usualt FOREIGN KEY (usualt) REFERENCES usuario(cod_usuario); -- -- -- -- -- ALTER TABLE ONLY usuarioorgao ADD CONSTRAINT fk_usuarioorgao_usuario FOREIGN KEY (cod_usuario) REFERENCES usuario(cod_usuario); -- -- -- -- -- ALTER TABLE ONLY usuarioorgao ADD CONSTRAINT fk_usuarioorgao_usuexc FOREIGN KEY (usuexc) REFERENCES usuario(cod_usuario); -- -- -- -- -- ALTER TABLE ONLY usuarioorgao ADD CONSTRAINT fk_usuarioorgao_usuinc FOREIGN KEY (usuinc) REFERENCES usuario(cod_usuario); -- -- -- -- -- REVOKE ALL ON SCHEMA public FROM PUBLIC; REVOKE ALL ON SCHEMA public FROM postgres; GRANT ALL ON SCHEMA public TO postgres; GRANT ALL ON SCHEMA public TO PUBLIC; -- -- -- --