set session_replication_role=replica;
alter table notafiscal alter nfi_numerorps type bigint;
set session_replication_role=origin;

insert into atualizacoes(atu_nome) values ('v21050001_190821.sql');

alter table loteexternoexamerequisicao
    add   ler_datahoraestorno  timestamp,
    add   usr_codestorno       varchar(20);


create index xif536loteexternoexamerequisica on loteexternoexamerequisicao
(
       usr_codestorno
);


drop function fn_td_loteexternoexamerequisicao() cascade;

create function fn_td_loteexternoexamerequisicao() returns opaque as '
declare
	numrows integer;										 
begin
    delete from loteexternoexamereqrastreio
      where
        loteexternoexamereqrastreio.fil_kodigo = old.fil_kodigo and
        loteexternoexamereqrastreio.fil_codigo = old.fil_codigo and
        loteexternoexamereqrastreio.lex_codigo = old.lex_codigo and
        loteexternoexamereqrastreio.lae_codigo = old.lae_codigo and
        loteexternoexamereqrastreio.req_codigo = old.req_codigo and
        loteexternoexamereqrastreio.exa_codigo = old.exa_codigo and
        loteexternoexamereqrastreio.mco_codigo = old.mco_codigo;

    delete from loteexternoexamerequisicaodesm
      where
        loteexternoexamerequisicaodesm.fil_kodigo = old.fil_kodigo and
        loteexternoexamerequisicaodesm.fil_codigo = old.fil_codigo and
        loteexternoexamerequisicaodesm.lex_codigo = old.lex_codigo and
        loteexternoexamerequisicaodesm.lae_codigo = old.lae_codigo and
        loteexternoexamerequisicaodesm.req_codigo = old.req_codigo and
        loteexternoexamerequisicaodesm.exa_codigo = old.exa_codigo and
        loteexternoexamerequisicaodesm.mco_codigo = old.mco_codigo;

    delete from loteexternoexamerequisicaorecip
      where
        loteexternoexamerequisicaorecip.fil_kodigo = old.fil_kodigo and
        loteexternoexamerequisicaorecip.fil_codigo = old.fil_codigo and
        loteexternoexamerequisicaorecip.lex_codigo = old.lex_codigo and
        loteexternoexamerequisicaorecip.lae_codigo = old.lae_codigo and
        loteexternoexamerequisicaorecip.req_codigo = old.req_codigo and
        loteexternoexamerequisicaorecip.exa_codigo = old.exa_codigo and
        loteexternoexamerequisicaorecip.mco_codigo = old.mco_codigo;


return old;
end;'
language 'plpgsql';
					
create trigger td_loteexternoexamerequisicao
after delete on loteexternoexamerequisicao
for each row execute procedure fn_td_loteexternoexamerequisicao();


drop function fn_ti_loteexternoexamerequisicao() cascade;

create function fn_ti_loteexternoexamerequisicao() returns opaque as '
declare
	numrows integer;
	tmp varchar;									 
begin
    select count(*) into numrows
      from usuario
      where
        new.usr_codestorno = usuario.usr_codigo;
    tmp:=''usuario|'';
    
      tmp:=tmp || ''usr_codigo='' || new.usr_codestorno || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);

    if (
      new.usr_codestorno is not null and
      numrows = 0
    ) then
      raise exception ''o registro nao pode ser inserido, pois um valor informado nao existe na tabela usuario. chave para consulta:[%]'',tmp using errcode=upper(''ifkne'');
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        new.fil_kodigo = examerequisicao.fil_codigo and
        new.exa_codigo = examerequisicao.exa_codigo and
        new.mco_codigo = examerequisicao.mco_codigo and
        new.req_codigo = examerequisicao.req_codigo;
    tmp:=''examerequisicao|'';
    
      tmp:=tmp || ''fil_codigo='' || new.fil_kodigo || ''|'';
    
      tmp:=tmp || ''exa_codigo='' || new.exa_codigo || ''|'';
    
      tmp:=tmp || ''mco_codigo='' || new.mco_codigo || ''|'';
    
      tmp:=tmp || ''req_codigo='' || new.req_codigo || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);

    if (
      
      numrows = 0
    ) then
      raise exception ''o registro nao pode ser inserido, pois um valor informado nao existe na tabela examerequisicao. chave para consulta:[%]'',tmp using errcode=upper(''ifkne'');
    end if;

    select count(*) into numrows
      from loteexternorequisicao
      where
        new.fil_codigo = loteexternorequisicao.fil_codigo and
        new.fil_kodigo = loteexternorequisicao.fil_kodigo and
        new.lex_codigo = loteexternorequisicao.lex_codigo and
        new.lae_codigo = loteexternorequisicao.lae_codigo and
        new.req_codigo = loteexternorequisicao.req_codigo;
    tmp:=''loteexternorequisicao|'';
    
      tmp:=tmp || ''fil_codigo='' || new.fil_codigo || ''|'';
    
      tmp:=tmp || ''fil_kodigo='' || new.fil_kodigo || ''|'';
    
      tmp:=tmp || ''lex_codigo='' || new.lex_codigo || ''|'';
    
      tmp:=tmp || ''lae_codigo='' || new.lae_codigo || ''|'';
    
      tmp:=tmp || ''req_codigo='' || new.req_codigo || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);

    if (
      
      numrows = 0
    ) then
      raise exception ''o registro nao pode ser inserido, pois um valor informado nao existe na tabela loteexternorequisicao. chave para consulta:[%]'',tmp using errcode=upper(''ifkne'');
    end if;


return new;
end;'
language 'plpgsql';
					
create trigger ti_loteexternoexamerequisicao
after insert on loteexternoexamerequisicao
for each row execute procedure fn_ti_loteexternoexamerequisicao();


drop function fn_tu_loteexternoexamerequisicao() cascade;

create function fn_tu_loteexternoexamerequisicao() returns opaque as '
declare
	numrows integer;
        tmp varchar;										 
begin
  if
    (old.fil_kodigo <> new.fil_kodigo or 
     old.fil_codigo <> new.fil_codigo or 
     old.lex_codigo <> new.lex_codigo or 
     old.lae_codigo <> new.lae_codigo or 
     old.req_codigo <> new.req_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from loteexternoexamereqrastreio
      where
        loteexternoexamereqrastreio.fil_kodigo = old.fil_kodigo and
        loteexternoexamereqrastreio.fil_codigo = old.fil_codigo and
        loteexternoexamereqrastreio.lex_codigo = old.lex_codigo and
        loteexternoexamereqrastreio.lae_codigo = old.lae_codigo and
        loteexternoexamereqrastreio.req_codigo = old.req_codigo and
        loteexternoexamereqrastreio.exa_codigo = old.exa_codigo and
        loteexternoexamereqrastreio.mco_codigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela loteexternoexamereqrastreio.'';
    end if;
  end if;
  if
    (old.fil_kodigo <> new.fil_kodigo or 
     old.fil_codigo <> new.fil_codigo or 
     old.lex_codigo <> new.lex_codigo or 
     old.lae_codigo <> new.lae_codigo or 
     old.req_codigo <> new.req_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from loteexternoexamerequisicaodesm
      where
        loteexternoexamerequisicaodesm.fil_kodigo = old.fil_kodigo and
        loteexternoexamerequisicaodesm.fil_codigo = old.fil_codigo and
        loteexternoexamerequisicaodesm.lex_codigo = old.lex_codigo and
        loteexternoexamerequisicaodesm.lae_codigo = old.lae_codigo and
        loteexternoexamerequisicaodesm.req_codigo = old.req_codigo and
        loteexternoexamerequisicaodesm.exa_codigo = old.exa_codigo and
        loteexternoexamerequisicaodesm.mco_codigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela loteexternoexamerequisicaodesm.'';
    end if;
  end if;
  if
    (old.fil_kodigo <> new.fil_kodigo or 
     old.fil_codigo <> new.fil_codigo or 
     old.lex_codigo <> new.lex_codigo or 
     old.lae_codigo <> new.lae_codigo or 
     old.req_codigo <> new.req_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from loteexternoexamerequisicaorecip
      where
        loteexternoexamerequisicaorecip.fil_kodigo = old.fil_kodigo and
        loteexternoexamerequisicaorecip.fil_codigo = old.fil_codigo and
        loteexternoexamerequisicaorecip.lex_codigo = old.lex_codigo and
        loteexternoexamerequisicaorecip.lae_codigo = old.lae_codigo and
        loteexternoexamerequisicaorecip.req_codigo = old.req_codigo and
        loteexternoexamerequisicaorecip.exa_codigo = old.exa_codigo and
        loteexternoexamerequisicaorecip.mco_codigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela loteexternoexamerequisicaorecip.'';
    end if;
  end if;
  select count(*) into numrows
    from usuario
    where
      new.usr_codestorno = usuario.usr_codigo;
    tmp:=''usuario|'';
    
      tmp:=tmp || ''usr_codigo='' || new.usr_codestorno || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);
  if (
    new.usr_codestorno is not null and
    numrows = 0
  ) then
    raise exception ''o registro nao pode ser alterado, pois um valor nao existe na tabela usuario. chave para consulta:[%]'',tmp using errcode=upper(''ufkne'');
  end if;

  select count(*) into numrows
    from examerequisicao
    where
      new.fil_kodigo = examerequisicao.fil_codigo and
      new.exa_codigo = examerequisicao.exa_codigo and
      new.mco_codigo = examerequisicao.mco_codigo and
      new.req_codigo = examerequisicao.req_codigo;
    tmp:=''examerequisicao|'';
    
      tmp:=tmp || ''fil_codigo='' || new.fil_kodigo || ''|'';
    
      tmp:=tmp || ''exa_codigo='' || new.exa_codigo || ''|'';
    
      tmp:=tmp || ''mco_codigo='' || new.mco_codigo || ''|'';
    
      tmp:=tmp || ''req_codigo='' || new.req_codigo || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);
  if (
    
    numrows = 0
  ) then
    raise exception ''o registro nao pode ser alterado, pois um valor nao existe na tabela examerequisicao. chave para consulta:[%]'',tmp using errcode=upper(''ufkne'');
  end if;

  select count(*) into numrows
    from loteexternorequisicao
    where
      new.fil_codigo = loteexternorequisicao.fil_codigo and
      new.fil_kodigo = loteexternorequisicao.fil_kodigo and
      new.lex_codigo = loteexternorequisicao.lex_codigo and
      new.lae_codigo = loteexternorequisicao.lae_codigo and
      new.req_codigo = loteexternorequisicao.req_codigo;
    tmp:=''loteexternorequisicao|'';
    
      tmp:=tmp || ''fil_codigo='' || new.fil_codigo || ''|'';
    
      tmp:=tmp || ''fil_kodigo='' || new.fil_kodigo || ''|'';
    
      tmp:=tmp || ''lex_codigo='' || new.lex_codigo || ''|'';
    
      tmp:=tmp || ''lae_codigo='' || new.lae_codigo || ''|'';
    
      tmp:=tmp || ''req_codigo='' || new.req_codigo || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);
  if (
    
    numrows = 0
  ) then
    raise exception ''o registro nao pode ser alterado, pois um valor nao existe na tabela loteexternorequisicao. chave para consulta:[%]'',tmp using errcode=upper(''ufkne'');
  end if;


return old;
end;'
language 'plpgsql';
					
create trigger tu_loteexternoexamerequisicao
after update on loteexternoexamerequisicao
for each row execute procedure fn_tu_loteexternoexamerequisicao();


drop function fn_td_usuario() cascade;

create function fn_td_usuario() returns opaque as '
declare
	numrows integer;										 
begin
    select count(*) into numrows
      from loteexternoexamerequisicao
      where
        loteexternoexamerequisicao.usr_codestorno = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela loteexternoexamerequisicao.'';
    end if;

    select count(*) into numrows
      from requisicaotermoconsentimento
      where
        requisicaotermoconsentimento.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela requisicaotermoconsentimento.'';
    end if;

    select count(*) into numrows
      from lotefilialexamerequisicao
      where
        lotefilialexamerequisicao.usr_codtransportechegada = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela lotefilialexamerequisicao.'';
    end if;

    select count(*) into numrows
      from lotefilialexamerequisicao
      where
        lotefilialexamerequisicao.usr_codtransportesaida = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela lotefilialexamerequisicao.'';
    end if;

    select count(*) into numrows
      from historicopoliticaweb
      where
        historicopoliticaweb.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela historicopoliticaweb.'';
    end if;

    select count(*) into numrows
      from preagendamentoevento
      where
        preagendamentoevento.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela preagendamentoevento.'';
    end if;

    select count(*) into numrows
      from labexternologintegracao
      where
        labexternologintegracao.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela labexternologintegracao.'';
    end if;

    select count(*) into numrows
      from labexternoversaotermo
      where
        labexternoversaotermo.usr_codaceite = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela labexternoversaotermo.'';
    end if;

    select count(*) into numrows
      from preagendamento
      where
        preagendamento.usr_codcancelamento = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela preagendamento.'';
    end if;

    select count(*) into numrows
      from preagendamento
      where
        preagendamento.usr_codagendou = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela preagendamento.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_coddialsist = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from integracaosave
      where
        integracaosave.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela integracaosave.'';
    end if;

    select count(*) into numrows
      from interfaceexamereagente
      where
        interfaceexamereagente.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela interfaceexamereagente.'';
    end if;

    select count(*) into numrows
      from examerequisicaohistoricoentrega
      where
        examerequisicaohistoricoentrega.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicaohistoricoentrega.'';
    end if;

    select count(*) into numrows
      from requisicaopaginasimpressas
      where
        requisicaopaginasimpressas.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela requisicaopaginasimpressas.'';
    end if;

    select count(*) into numrows
      from tabelaprecoexamesusuario
      where
        tabelaprecoexamesusuario.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela tabelaprecoexamesusuario.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codenvioemail = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from materialusuario
      where
        materialusuario.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela materialusuario.'';
    end if;

    select count(*) into numrows
      from logids
      where
        logids.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela logids.'';
    end if;

    select count(*) into numrows
      from logvalidalotematerial
      where
        logvalidalotematerial.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela logvalidalotematerial.'';
    end if;

    select count(*) into numrows
      from material
      where
        material.usr_codavisolote = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela material.'';
    end if;

    delete from usuariosenhas
      where
        usuariosenhas.usr_codigo = old.usr_codigo;

    select count(*) into numrows
      from pacienteimagens
      where
        pacienteimagens.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela pacienteimagens.'';
    end if;

    select count(*) into numrows
      from requisicaoimagens
      where
        requisicaoimagens.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela requisicaoimagens.'';
    end if;

    select count(*) into numrows
      from orcamentoconvenio
      where
        orcamentoconvenio.usr_coddesconto = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela orcamentoconvenio.'';
    end if;

    select count(*) into numrows
      from requisicao
      where
        requisicao.usr_coddesconto = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela requisicao.'';
    end if;

    select count(*) into numrows
      from examerequisicaoetiquetas
      where
        examerequisicaoetiquetas.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicaoetiquetas.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codduplaconferencia = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from loteexternorequisicao
      where
        loteexternorequisicao.usr_codestorno = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela loteexternorequisicao.'';
    end if;

    select count(*) into numrows
      from loteexterno
      where
        loteexterno.usr_codestorno = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela loteexterno.'';
    end if;

    select count(*) into numrows
      from materiallotehistorico
      where
        materiallotehistorico.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela materiallotehistorico.'';
    end if;

    select count(*) into numrows
      from materiallote
      where
        materiallote.usr_codaberturainicial = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela materiallote.'';
    end if;

    select count(*) into numrows
      from materiallote
      where
        materiallote.usr_codfechado = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela materiallote.'';
    end if;

    select count(*) into numrows
      from materiallote
      where
        materiallote.usr_codaberto = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela materiallote.'';
    end if;

    delete from responsavelcertificado
      where
        responsavelcertificado.usr_codigo = old.usr_codigo;

    select count(*) into numrows
      from requisicao
      where
        requisicao.usr_codelegibilidade = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela requisicao.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codsolicitadotiss = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codcoletar = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from transfestoquematerial
      where
        transfestoquematerial.usr_codcancelamento = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela transfestoquematerial.'';
    end if;

    select count(*) into numrows
      from transfestoque
      where
        transfestoque.usr_codcancelamento = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela transfestoque.'';
    end if;

    select count(*) into numrows
      from examerequisicaodadosbrutos
      where
        examerequisicaodadosbrutos.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicaodadosbrutos.'';
    end if;

    select count(*) into numrows
      from examerequisicaoincerteza
      where
        examerequisicaoincerteza.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicaoincerteza.'';
    end if;

    select count(*) into numrows
      from setoresnaoconformidadeusuario
      where
        setoresnaoconformidadeusuario.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela setoresnaoconformidadeusuario.'';
    end if;

    select count(*) into numrows
      from setoresnaoconformidade
      where
        setoresnaoconformidade.usr_codresponsavelsetor = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela setoresnaoconformidade.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codtransportechegada = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codtransportesaida = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from lotefilial
      where
        lotefilial.usr_codrecebeu = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela lotefilial.'';
    end if;

    select count(*) into numrows
      from lotefilial
      where
        lotefilial.usr_codenviou = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela lotefilial.'';
    end if;

    select count(*) into numrows
      from logoffline
      where
        logoffline.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela logoffline.'';
    end if;

    select count(*) into numrows
      from usuariologin
      where
        usuariologin.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela usuariologin.'';
    end if;

    select count(*) into numrows
      from acoesnaoconformidade
      where
        acoesnaoconformidade.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela acoesnaoconformidade.'';
    end if;

    select count(*) into numrows
      from orcamentolog
      where
        orcamentolog.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela orcamentolog.'';
    end if;

    select count(*) into numrows
      from orcamento
      where
        orcamento.usr_codaprovado = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela orcamento.'';
    end if;

    select count(*) into numrows
      from naoconformidade
      where
        naoconformidade.usr_codconclusao = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela naoconformidade.'';
    end if;

    select count(*) into numrows
      from naoconformidade
      where
        naoconformidade.usr_codanalise = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela naoconformidade.'';
    end if;

    select count(*) into numrows
      from naoconformidade
      where
        naoconformidade.usr_codregistro = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela naoconformidade.'';
    end if;

    select count(*) into numrows
      from naoconformidade
      where
        naoconformidade.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela naoconformidade.'';
    end if;

    select count(*) into numrows
      from labexterno
      where
        labexterno.usr_codconferir = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela labexterno.'';
    end if;

    select count(*) into numrows
      from banhomariatemperatura
      where
        banhomariatemperatura.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela banhomariatemperatura.'';
    end if;

    select count(*) into numrows
      from banhomaria
      where
        banhomaria.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela banhomaria.'';
    end if;

    select count(*) into numrows
      from filiais_postocoleta
      where
        filiais_postocoleta.usr_codcompras = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela filiais_postocoleta.'';
    end if;

    select count(*) into numrows
      from filiais_postocoleta
      where
        filiais_postocoleta.usr_codestoque = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela filiais_postocoleta.'';
    end if;

    select count(*) into numrows
      from examerequisicaolaminas
      where
        examerequisicaolaminas.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicaolaminas.'';
    end if;

    select count(*) into numrows
      from agendamento
      where
        agendamento.usr_codhorarioanexado = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela agendamento.'';
    end if;

    select count(*) into numrows
      from agendamento
      where
        agendamento.usr_codbloqueado = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela agendamento.'';
    end if;

    select count(*) into numrows
      from materiallote
      where
        materiallote.usr_codremovido = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela materiallote.'';
    end if;

    select count(*) into numrows
      from materiallote
      where
        materiallote.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela materiallote.'';
    end if;

    select count(*) into numrows
      from examerequisicaohash
      where
        examerequisicaohash.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicaohash.'';
    end if;

    select count(*) into numrows
      from agendamento
      where
        agendamento.usr_codfinalizado = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela agendamento.'';
    end if;

    select count(*) into numrows
      from agendamento
      where
        agendamento.usr_codemcoleta = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela agendamento.'';
    end if;

    select count(*) into numrows
      from agendamento
      where
        agendamento.usr_codremarcado = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela agendamento.'';
    end if;

    select count(*) into numrows
      from requisicaolog
      where
        requisicaolog.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela requisicaolog.'';
    end if;

    select count(*) into numrows
      from convenioshistoricocota
      where
        convenioshistoricocota.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela convenioshistoricocota.'';
    end if;

    select count(*) into numrows
      from agendamento
      where
        agendamento.usr_codcancelamento = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela agendamento.'';
    end if;

    select count(*) into numrows
      from agendamento
      where
        agendamento.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela agendamento.'';
    end if;

    select count(*) into numrows
      from examerequisicaotrocas
      where
        examerequisicaotrocas.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicaotrocas.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codtrocalayout = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codalteracaopreco = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    delete from usuariocompromisso
      where
        usuariocompromisso.usr_codigo = old.usr_codigo;

    select count(*) into numrows
      from examerequisicaohistoricolaudo
      where
        examerequisicaohistoricolaudo.usr_codsituacao = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicaohistoricolaudo.'';
    end if;

    select count(*) into numrows
      from contrassenharequisicao
      where
        contrassenharequisicao.usr_codgerada = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela contrassenharequisicao.'';
    end if;

    select count(*) into numrows
      from contrassenharequisicao
      where
        contrassenharequisicao.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela contrassenharequisicao.'';
    end if;

    select count(*) into numrows
      from solicitarsoroteca
      where
        solicitarsoroteca.usr_codentrega = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela solicitarsoroteca.'';
    end if;

    select count(*) into numrows
      from solicitarsoroteca
      where
        solicitarsoroteca.usr_codcancelamento = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela solicitarsoroteca.'';
    end if;

    select count(*) into numrows
      from solicitarsoroteca
      where
        solicitarsoroteca.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela solicitarsoroteca.'';
    end if;

    select count(*) into numrows
      from convenioignorarecebimento
      where
        convenioignorarecebimento.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela convenioignorarecebimento.'';
    end if;

    select count(*) into numrows
      from examerequisicaohistoricolaudo
      where
        examerequisicaohistoricolaudo.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicaohistoricolaudo.'';
    end if;

    select count(*) into numrows
      from examerequisicaosetor
      where
        examerequisicaosetor.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicaosetor.'';
    end if;

    select count(*) into numrows
      from paciente
      where
        paciente.usr_codimpressaocarteira = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela paciente.'';
    end if;

    select count(*) into numrows
      from materialenviado
      where
        materialenviado.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela materialenviado.'';
    end if;

    select count(*) into numrows
      from materialidentificado
      where
        materialidentificado.usr_codretorno = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela materialidentificado.'';
    end if;

    select count(*) into numrows
      from materialidentificado
      where
        materialidentificado.usr_codenvio = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela materialidentificado.'';
    end if;

    select count(*) into numrows
      from loteapoio
      where
        loteapoio.usr_codrecebeucaixa = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela loteapoio.'';
    end if;

    select count(*) into numrows
      from examerequisicaosoroteca
      where
        examerequisicaosoroteca.usr_coddescarte = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicaosoroteca.'';
    end if;

    select count(*) into numrows
      from examerequisicaosoroteca
      where
        examerequisicaosoroteca.usr_codsoroteca = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicaosoroteca.'';
    end if;

    select count(*) into numrows
      from requisicao
      where
        requisicao.usr_codguiarepasse = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela requisicao.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codrecoleta = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codfaturarepasse = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from receberpagar
      where
        receberpagar.usr_codcomissao = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela receberpagar.'';
    end if;

    select count(*) into numrows
      from montagemkit
      where
        montagemkit.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela montagemkit.'';
    end if;

    select count(*) into numrows
      from transfestoque
      where
        transfestoque.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela transfestoque.'';
    end if;

    select count(*) into numrows
      from orcamento
      where
        orcamento.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela orcamento.'';
    end if;

    select count(*) into numrows
      from estoquemanual
      where
        estoquemanual.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela estoquemanual.'';
    end if;

    select count(*) into numrows
      from requisicaoestoque
      where
        requisicaoestoque.usr_codcancelamento = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela requisicaoestoque.'';
    end if;

    select count(*) into numrows
      from requisicaoestoque
      where
        requisicaoestoque.usr_codalmoxarife = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela requisicaoestoque.'';
    end if;

    select count(*) into numrows
      from requisicaoestoque
      where
        requisicaoestoque.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela requisicaoestoque.'';
    end if;

    select count(*) into numrows
      from notafiscal
      where
        notafiscal.usr_codautorizafinanceira = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela notafiscal.'';
    end if;

    select count(*) into numrows
      from conferenciaestoque
      where
        conferenciaestoque.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela conferenciaestoque.'';
    end if;

    select count(*) into numrows
      from lanctoestoque
      where
        lanctoestoque.usr_codconciliacao = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela lanctoestoque.'';
    end if;

    select count(*) into numrows
      from lanctoestoque
      where
        lanctoestoque.usr_codcancelamento = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela lanctoestoque.'';
    end if;

    select count(*) into numrows
      from lanctoestoque
      where
        lanctoestoque.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela lanctoestoque.'';
    end if;

    select count(*) into numrows
      from conferenciaentrada
      where
        conferenciaentrada.usr_codcancelamento = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela conferenciaentrada.'';
    end if;

    select count(*) into numrows
      from conferenciaentrada
      where
        conferenciaentrada.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela conferenciaentrada.'';
    end if;

    select count(*) into numrows
      from pedido
      where
        pedido.usr_codexclusao = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela pedido.'';
    end if;

    select count(*) into numrows
      from fatura
      where
        fatura.usr_codcomissao = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela fatura.'';
    end if;

    select count(*) into numrows
      from pedido
      where
        pedido.usr_codautorizacao = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela pedido.'';
    end if;

    select count(*) into numrows
      from pedido
      where
        pedido.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela pedido.'';
    end if;

    select count(*) into numrows
      from cotacao
      where
        cotacao.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela cotacao.'';
    end if;

    select count(*) into numrows
      from material
      where
        material.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela material.'';
    end if;

    select count(*) into numrows
      from receberpagar
      where
        receberpagar.usr_codprotestocobranca = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela receberpagar.'';
    end if;

    select count(*) into numrows
      from receberpagar
      where
        receberpagar.usr_codcartoriocobranca = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela receberpagar.'';
    end if;

    select count(*) into numrows
      from receberpagar
      where
        receberpagar.usr_codavisocobranca = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela receberpagar.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codrepeticao = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from paciente
      where
        paciente.usr_codalteracao = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela paciente.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codguia = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from examerequisicaosituacoes
      where
        examerequisicaosituacoes.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicaosituacoes.'';
    end if;

    select count(*) into numrows
      from exames
      where
        exames.usr_codassinaweb = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela exames.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codexcluido = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from requisicao
      where
        requisicao.usr_codexcluida = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela requisicao.'';
    end if;

    select count(*) into numrows
      from fatura
      where
        fatura.usr_codcancelamento = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela fatura.'';
    end if;

    select count(*) into numrows
      from convenios
      where
        convenios.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela convenios.'';
    end if;

    select count(*) into numrows
      from notafiscal
      where
        notafiscal.usr_codreimpressao = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela notafiscal.'';
    end if;

    select count(*) into numrows
      from geladeirastemperaturas
      where
        geladeirastemperaturas.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela geladeirastemperaturas.'';
    end if;

    select count(*) into numrows
      from geladeiras
      where
        geladeiras.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela geladeiras.'';
    end if;

    delete from usuariofilial
      where
        usuariofilial.usr_codigo = old.usr_codigo;

    select count(*) into numrows
      from notafiscal
      where
        notafiscal.usr_codimpressao = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela notafiscal.'';
    end if;

    select count(*) into numrows
      from notafiscal
      where
        notafiscal.usr_codcancelada = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela notafiscal.'';
    end if;

    select count(*) into numrows
      from notafiscal
      where
        notafiscal.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela notafiscal.'';
    end if;

    select count(*) into numrows
      from baixa
      where
        baixa.usr_codcancelado = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela baixa.'';
    end if;

    select count(*) into numrows
      from baixa
      where
        baixa.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela baixa.'';
    end if;

    select count(*) into numrows
      from receberpagar
      where
        receberpagar.usr_codcancelado = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela receberpagar.'';
    end if;

    select count(*) into numrows
      from receberpagar
      where
        receberpagar.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela receberpagar.'';
    end if;

    select count(*) into numrows
      from lanctocaixa
      where
        lanctocaixa.usr_codcancelado = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela lanctocaixa.'';
    end if;

    select count(*) into numrows
      from requisicaocid10
      where
        requisicaocid10.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela requisicaocid10.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codmaterialsetor = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codloteexterno = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from loteexterno
      where
        loteexterno.usr_codenvio = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela loteexterno.'';
    end if;

    select count(*) into numrows
      from loteexterno
      where
        loteexterno.usr_codcriacao = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela loteexterno.'';
    end if;

    select count(*) into numrows
      from log
      where
        log.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela log.'';
    end if;

    select count(*) into numrows
      from usuariomensagem
      where
        usuariomensagem.usr_codorigem = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela usuariomensagem.'';
    end if;

    delete from usuariomensagem
      where
        usuariomensagem.usr_coddestino = old.usr_codigo;

    select count(*) into numrows
      from conveniomensagem
      where
        conveniomensagem.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela conveniomensagem.'';
    end if;

    select count(*) into numrows
      from examerequisicaorecipiente
      where
        examerequisicaorecipiente.usr_codtriagem = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicaorecipiente.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codetqtriagem = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codetqcoleta = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from loteapoio
      where
        loteapoio.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela loteapoio.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codtriagem = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from fatura
      where
        fatura.usr_codconferencia = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela fatura.'';
    end if;

    select count(*) into numrows
      from fatura
      where
        fatura.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela fatura.'';
    end if;

    select count(*) into numrows
      from contrasenha
      where
        contrasenha.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela contrasenha.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codnaofaturar = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from requisicaousuario
      where
        requisicaousuario.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela requisicaousuario.'';
    end if;

    select count(*) into numrows
      from requisicao
      where
        requisicao.usr_codabertura = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela requisicao.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codcortesia = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codmapa = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from interfaceexamerequisicao
      where
        interfaceexamerequisicao.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela interfaceexamerequisicao.'';
    end if;

    select count(*) into numrows
      from usuarioparametro
      where
        usuarioparametro.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela usuarioparametro.'';
    end if;

    select count(*) into numrows
      from lanctocaixa
      where
        lanctocaixa.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela lanctocaixa.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from requisicao
      where
        requisicao.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela requisicao.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codimpressao = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codentrega = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codfatura = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codmaterial = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_coddigitador = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.usr_codassina = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    delete from usuarioacesso
      where
        usuarioacesso.usr_codigo = old.usr_codigo;

    select count(*) into numrows
      from setores
      where
        setores.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela setores.'';
    end if;

    select count(*) into numrows
      from paciente
      where
        paciente.usr_codigo = old.usr_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela paciente.'';
    end if;


return old;
end;'
language 'plpgsql';
					
create trigger td_usuario
after delete on usuario
for each row execute procedure fn_td_usuario();


drop function fn_ti_usuario() cascade;

create function fn_ti_usuario() returns opaque as '
declare
	numrows integer;
	tmp varchar;									 
begin
    select count(*) into numrows
      from tipousuario
      where
        new.tpu_codigo = tipousuario.tpu_codigo;
    tmp:=''tipousuario|'';
    
      tmp:=tmp || ''tpu_codigo='' || new.tpu_codigo || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);

    if (
      new.tpu_codigo is not null and
      numrows = 0
    ) then
      raise exception ''o registro nao pode ser inserido, pois um valor informado nao existe na tabela tipousuario. chave para consulta:[%]'',tmp using errcode=upper(''ifkne'');
    end if;


return new;
end;'
language 'plpgsql';
					
create trigger ti_usuario
after insert on usuario
for each row execute procedure fn_ti_usuario();


drop function fn_tu_usuario() cascade;

create function fn_tu_usuario() returns opaque as '
declare
	numrows integer;
        tmp varchar;										 
begin
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from loteexternoexamerequisicao
      where
        loteexternoexamerequisicao.usr_codestorno = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela loteexternoexamerequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from requisicaotermoconsentimento
      where
        requisicaotermoconsentimento.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela requisicaotermoconsentimento.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from lotefilialexamerequisicao
      where
        lotefilialexamerequisicao.usr_codtransportechegada = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela lotefilialexamerequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from lotefilialexamerequisicao
      where
        lotefilialexamerequisicao.usr_codtransportesaida = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela lotefilialexamerequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from historicopoliticaweb
      where
        historicopoliticaweb.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela historicopoliticaweb.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from preagendamentoevento
      where
        preagendamentoevento.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela preagendamentoevento.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from labexternologintegracao
      where
        labexternologintegracao.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela labexternologintegracao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from labexternoversaotermo
      where
        labexternoversaotermo.usr_codaceite = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela labexternoversaotermo.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from preagendamento
      where
        preagendamento.usr_codcancelamento = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela preagendamento.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from preagendamento
      where
        preagendamento.usr_codagendou = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela preagendamento.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_coddialsist = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from integracaosave
      where
        integracaosave.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela integracaosave.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from interfaceexamereagente
      where
        interfaceexamereagente.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela interfaceexamereagente.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicaohistoricoentrega
      where
        examerequisicaohistoricoentrega.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicaohistoricoentrega.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from requisicaopaginasimpressas
      where
        requisicaopaginasimpressas.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela requisicaopaginasimpressas.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from tabelaprecoexamesusuario
      where
        tabelaprecoexamesusuario.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela tabelaprecoexamesusuario.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codenvioemail = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from materialusuario
      where
        materialusuario.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela materialusuario.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from logids
      where
        logids.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela logids.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from logvalidalotematerial
      where
        logvalidalotematerial.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela logvalidalotematerial.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from material
      where
        material.usr_codavisolote = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela material.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from usuariosenhas
      where
        usuariosenhas.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela usuariosenhas.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from pacienteimagens
      where
        pacienteimagens.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela pacienteimagens.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from requisicaoimagens
      where
        requisicaoimagens.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela requisicaoimagens.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from orcamentoconvenio
      where
        orcamentoconvenio.usr_coddesconto = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela orcamentoconvenio.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from requisicao
      where
        requisicao.usr_coddesconto = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela requisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicaoetiquetas
      where
        examerequisicaoetiquetas.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicaoetiquetas.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codduplaconferencia = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from loteexternorequisicao
      where
        loteexternorequisicao.usr_codestorno = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela loteexternorequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from loteexterno
      where
        loteexterno.usr_codestorno = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela loteexterno.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from materiallotehistorico
      where
        materiallotehistorico.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela materiallotehistorico.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from materiallote
      where
        materiallote.usr_codaberturainicial = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela materiallote.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from materiallote
      where
        materiallote.usr_codfechado = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela materiallote.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from materiallote
      where
        materiallote.usr_codaberto = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela materiallote.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from responsavelcertificado
      where
        responsavelcertificado.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela responsavelcertificado.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from requisicao
      where
        requisicao.usr_codelegibilidade = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela requisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codsolicitadotiss = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codcoletar = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from transfestoquematerial
      where
        transfestoquematerial.usr_codcancelamento = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela transfestoquematerial.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from transfestoque
      where
        transfestoque.usr_codcancelamento = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela transfestoque.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicaodadosbrutos
      where
        examerequisicaodadosbrutos.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicaodadosbrutos.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicaoincerteza
      where
        examerequisicaoincerteza.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicaoincerteza.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from setoresnaoconformidadeusuario
      where
        setoresnaoconformidadeusuario.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela setoresnaoconformidadeusuario.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from setoresnaoconformidade
      where
        setoresnaoconformidade.usr_codresponsavelsetor = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela setoresnaoconformidade.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codtransportechegada = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codtransportesaida = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from lotefilial
      where
        lotefilial.usr_codrecebeu = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela lotefilial.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from lotefilial
      where
        lotefilial.usr_codenviou = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela lotefilial.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from logoffline
      where
        logoffline.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela logoffline.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from usuariologin
      where
        usuariologin.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela usuariologin.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from acoesnaoconformidade
      where
        acoesnaoconformidade.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela acoesnaoconformidade.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from orcamentolog
      where
        orcamentolog.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela orcamentolog.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from orcamento
      where
        orcamento.usr_codaprovado = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela orcamento.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from naoconformidade
      where
        naoconformidade.usr_codconclusao = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela naoconformidade.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from naoconformidade
      where
        naoconformidade.usr_codanalise = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela naoconformidade.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from naoconformidade
      where
        naoconformidade.usr_codregistro = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela naoconformidade.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from naoconformidade
      where
        naoconformidade.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela naoconformidade.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from labexterno
      where
        labexterno.usr_codconferir = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela labexterno.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from banhomariatemperatura
      where
        banhomariatemperatura.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela banhomariatemperatura.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from banhomaria
      where
        banhomaria.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela banhomaria.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from filiais_postocoleta
      where
        filiais_postocoleta.usr_codcompras = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela filiais_postocoleta.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from filiais_postocoleta
      where
        filiais_postocoleta.usr_codestoque = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela filiais_postocoleta.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicaolaminas
      where
        examerequisicaolaminas.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicaolaminas.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from agendamento
      where
        agendamento.usr_codhorarioanexado = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela agendamento.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from agendamento
      where
        agendamento.usr_codbloqueado = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela agendamento.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from materiallote
      where
        materiallote.usr_codremovido = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela materiallote.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from materiallote
      where
        materiallote.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela materiallote.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicaohash
      where
        examerequisicaohash.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicaohash.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from agendamento
      where
        agendamento.usr_codfinalizado = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela agendamento.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from agendamento
      where
        agendamento.usr_codemcoleta = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela agendamento.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from agendamento
      where
        agendamento.usr_codremarcado = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela agendamento.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from requisicaolog
      where
        requisicaolog.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela requisicaolog.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from convenioshistoricocota
      where
        convenioshistoricocota.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela convenioshistoricocota.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from agendamento
      where
        agendamento.usr_codcancelamento = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela agendamento.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from agendamento
      where
        agendamento.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela agendamento.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicaotrocas
      where
        examerequisicaotrocas.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicaotrocas.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codtrocalayout = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codalteracaopreco = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from usuariocompromisso
      where
        usuariocompromisso.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela usuariocompromisso.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicaohistoricolaudo
      where
        examerequisicaohistoricolaudo.usr_codsituacao = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicaohistoricolaudo.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from contrassenharequisicao
      where
        contrassenharequisicao.usr_codgerada = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela contrassenharequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from contrassenharequisicao
      where
        contrassenharequisicao.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela contrassenharequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from solicitarsoroteca
      where
        solicitarsoroteca.usr_codentrega = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela solicitarsoroteca.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from solicitarsoroteca
      where
        solicitarsoroteca.usr_codcancelamento = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela solicitarsoroteca.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from solicitarsoroteca
      where
        solicitarsoroteca.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela solicitarsoroteca.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from convenioignorarecebimento
      where
        convenioignorarecebimento.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela convenioignorarecebimento.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicaohistoricolaudo
      where
        examerequisicaohistoricolaudo.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicaohistoricolaudo.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicaosetor
      where
        examerequisicaosetor.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicaosetor.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from paciente
      where
        paciente.usr_codimpressaocarteira = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela paciente.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from materialenviado
      where
        materialenviado.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela materialenviado.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from materialidentificado
      where
        materialidentificado.usr_codretorno = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela materialidentificado.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from materialidentificado
      where
        materialidentificado.usr_codenvio = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela materialidentificado.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from loteapoio
      where
        loteapoio.usr_codrecebeucaixa = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela loteapoio.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicaosoroteca
      where
        examerequisicaosoroteca.usr_coddescarte = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicaosoroteca.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicaosoroteca
      where
        examerequisicaosoroteca.usr_codsoroteca = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicaosoroteca.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from requisicao
      where
        requisicao.usr_codguiarepasse = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela requisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codrecoleta = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codfaturarepasse = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from receberpagar
      where
        receberpagar.usr_codcomissao = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela receberpagar.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from montagemkit
      where
        montagemkit.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela montagemkit.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from transfestoque
      where
        transfestoque.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela transfestoque.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from orcamento
      where
        orcamento.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela orcamento.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from estoquemanual
      where
        estoquemanual.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela estoquemanual.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from requisicaoestoque
      where
        requisicaoestoque.usr_codcancelamento = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela requisicaoestoque.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from requisicaoestoque
      where
        requisicaoestoque.usr_codalmoxarife = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela requisicaoestoque.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from requisicaoestoque
      where
        requisicaoestoque.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela requisicaoestoque.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from notafiscal
      where
        notafiscal.usr_codautorizafinanceira = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela notafiscal.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from conferenciaestoque
      where
        conferenciaestoque.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela conferenciaestoque.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from lanctoestoque
      where
        lanctoestoque.usr_codconciliacao = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela lanctoestoque.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from lanctoestoque
      where
        lanctoestoque.usr_codcancelamento = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela lanctoestoque.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from lanctoestoque
      where
        lanctoestoque.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela lanctoestoque.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from conferenciaentrada
      where
        conferenciaentrada.usr_codcancelamento = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela conferenciaentrada.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from conferenciaentrada
      where
        conferenciaentrada.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela conferenciaentrada.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from pedido
      where
        pedido.usr_codexclusao = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela pedido.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from fatura
      where
        fatura.usr_codcomissao = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela fatura.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from pedido
      where
        pedido.usr_codautorizacao = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela pedido.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from pedido
      where
        pedido.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela pedido.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from cotacao
      where
        cotacao.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela cotacao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from material
      where
        material.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela material.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from receberpagar
      where
        receberpagar.usr_codprotestocobranca = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela receberpagar.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from receberpagar
      where
        receberpagar.usr_codcartoriocobranca = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela receberpagar.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from receberpagar
      where
        receberpagar.usr_codavisocobranca = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela receberpagar.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codrepeticao = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from paciente
      where
        paciente.usr_codalteracao = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela paciente.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codguia = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicaosituacoes
      where
        examerequisicaosituacoes.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicaosituacoes.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from exames
      where
        exames.usr_codassinaweb = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela exames.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codexcluido = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from requisicao
      where
        requisicao.usr_codexcluida = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela requisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from fatura
      where
        fatura.usr_codcancelamento = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela fatura.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from convenios
      where
        convenios.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela convenios.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from notafiscal
      where
        notafiscal.usr_codreimpressao = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela notafiscal.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from geladeirastemperaturas
      where
        geladeirastemperaturas.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela geladeirastemperaturas.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from geladeiras
      where
        geladeiras.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela geladeiras.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from usuariofilial
      where
        usuariofilial.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela usuariofilial.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from notafiscal
      where
        notafiscal.usr_codimpressao = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela notafiscal.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from notafiscal
      where
        notafiscal.usr_codcancelada = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela notafiscal.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from notafiscal
      where
        notafiscal.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela notafiscal.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from baixa
      where
        baixa.usr_codcancelado = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela baixa.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from baixa
      where
        baixa.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela baixa.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from receberpagar
      where
        receberpagar.usr_codcancelado = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela receberpagar.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from receberpagar
      where
        receberpagar.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela receberpagar.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from lanctocaixa
      where
        lanctocaixa.usr_codcancelado = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela lanctocaixa.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from requisicaocid10
      where
        requisicaocid10.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela requisicaocid10.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codmaterialsetor = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codloteexterno = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from loteexterno
      where
        loteexterno.usr_codenvio = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela loteexterno.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from loteexterno
      where
        loteexterno.usr_codcriacao = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela loteexterno.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from log
      where
        log.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela log.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from usuariomensagem
      where
        usuariomensagem.usr_codorigem = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela usuariomensagem.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from usuariomensagem
      where
        usuariomensagem.usr_coddestino = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela usuariomensagem.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from conveniomensagem
      where
        conveniomensagem.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela conveniomensagem.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicaorecipiente
      where
        examerequisicaorecipiente.usr_codtriagem = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicaorecipiente.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codetqtriagem = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codetqcoleta = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from loteapoio
      where
        loteapoio.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela loteapoio.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codtriagem = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from fatura
      where
        fatura.usr_codconferencia = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela fatura.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from fatura
      where
        fatura.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela fatura.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from contrasenha
      where
        contrasenha.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela contrasenha.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codnaofaturar = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from requisicaousuario
      where
        requisicaousuario.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela requisicaousuario.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from requisicao
      where
        requisicao.usr_codabertura = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela requisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codcortesia = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codmapa = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from interfaceexamerequisicao
      where
        interfaceexamerequisicao.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela interfaceexamerequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from usuarioparametro
      where
        usuarioparametro.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela usuarioparametro.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from lanctocaixa
      where
        lanctocaixa.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela lanctocaixa.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from requisicao
      where
        requisicao.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela requisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codimpressao = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codentrega = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codfatura = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codmaterial = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_coddigitador = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.usr_codassina = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicao.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from usuarioacesso
      where
        usuarioacesso.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela usuarioacesso.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from setores
      where
        setores.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela setores.'';
    end if;
  end if;
  if
    (old.usr_codigo <> new.usr_codigo) then
    select count(*)
      from paciente
      where
        paciente.usr_codigo = old.usr_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela paciente.'';
    end if;
  end if;
  select count(*) into numrows
    from tipousuario
    where
      new.tpu_codigo = tipousuario.tpu_codigo;
    tmp:=''tipousuario|'';
    
      tmp:=tmp || ''tpu_codigo='' || new.tpu_codigo || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);
  if (
    new.tpu_codigo is not null and
    numrows = 0
  ) then
    raise exception ''o registro nao pode ser alterado, pois um valor nao existe na tabela tipousuario. chave para consulta:[%]'',tmp using errcode=upper(''ufkne'');
  end if;


return old;
end;'
language 'plpgsql';
					
create trigger tu_usuario
after update on usuario
for each row execute procedure fn_tu_usuario();



insert into atualizacoes(atu_nome) values ('v21050002_080921.sql');

alter table filiais_postocoleta add fil_cnesrnds varchar(7);

insert into atualizacoes(atu_nome) values ('v21050003_011021.sql');

set session_replication_role=replica;
alter table filiais_postocoleta add fil_naocompornfsefisica boolean default false, add fil_naocompornfsejuridica boolean default false;
alter table notafiscal alter nfi_motivonfse type varchar(10000);
set session_replication_role=origin;

alter table faturaexamerequisicao add fer_faturadogrupo boolean;

insert into atualizacoes(atu_nome) values ('v21050004_051021.sql');

create table examematcoletahospital (
       fil_codigo           integer not null,
       exa_codigo           varchar(5) not null,
       mco_codigo           integer not null,
       emh_sistema          varchar(1) not null,
       emh_xmlconfiguracao  text
);

create unique index xpkexamematcoletahospital on examematcoletahospital
(
       fil_codigo,
       exa_codigo,
       mco_codigo,
       emh_sistema
);

create index xif1examematcoletahospital on examematcoletahospital
(
       fil_codigo,
       exa_codigo,
       mco_codigo
);


alter table examematcoletahospital
       add primary key (fil_codigo, exa_codigo, mco_codigo, 
              emh_sistema);




drop function fn_td_examematcoleta() cascade;

create function fn_td_examematcoleta() returns opaque as '
declare
	numrows integer;										 
begin
    select count(*) into numrows
      from examematcoletahospital
      where
        examematcoletahospital.fil_codigo = old.fil_codigo and
        examematcoletahospital.exa_codigo = old.exa_codigo and
        examematcoletahospital.mco_codigo = old.mco_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examematcoletahospital.'';
    end if;

    select count(*) into numrows
      from interfaceexamereagente
      where
        interfaceexamereagente.fil_codigo = old.fil_codigo and
        interfaceexamereagente.exa_codigo = old.exa_codigo and
        interfaceexamereagente.mco_codigo = old.mco_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela interfaceexamereagente.'';
    end if;

    select count(*) into numrows
      from conveniosintegracaooperadora
      where
        conveniosintegracaooperadora.fil_codigo = old.fil_codigo and
        conveniosintegracaooperadora.exa_kodigo = old.exa_codigo and
        conveniosintegracaooperadora.mco_kodigo = old.mco_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela conveniosintegracaooperadora.'';
    end if;

    select count(*) into numrows
      from conveniosintegracaooperadora
      where
        conveniosintegracaooperadora.fil_codigo = old.fil_codigo and
        conveniosintegracaooperadora.exa_codigo = old.exa_codigo and
        conveniosintegracaooperadora.mco_codigo = old.mco_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela conveniosintegracaooperadora.'';
    end if;

    delete from exportaintegracaooperadora
      where
        exportaintegracaooperadora.fil_codigo = old.fil_codigo and
        exportaintegracaooperadora.exa_codigo = old.exa_codigo and
        exportaintegracaooperadora.mco_codigo = old.mco_codigo;

    select count(*) into numrows
      from examecorrelacaoconferencia
      where
        examecorrelacaoconferencia.fil_codigo = old.fil_codigo and
        examecorrelacaoconferencia.exa_kodigo = old.exa_codigo and
        examecorrelacaoconferencia.mco_kodigo = old.mco_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examecorrelacaoconferencia.'';
    end if;

    delete from examecorrelacaoconferencia
      where
        examecorrelacaoconferencia.fil_codigo = old.fil_codigo and
        examecorrelacaoconferencia.exa_codigo = old.exa_codigo and
        examecorrelacaoconferencia.mco_codigo = old.mco_codigo;

    select count(*) into numrows
      from loteexternoexamerequisicaodesm
      where
        loteexternoexamerequisicaodesm.fil_codigo = old.fil_codigo and
        loteexternoexamerequisicaodesm.exa_kodigo = old.exa_codigo and
        loteexternoexamerequisicaodesm.mco_kodigo = old.mco_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela loteexternoexamerequisicaodesm.'';
    end if;

    select count(*) into numrows
      from conveniocotaexame
      where
        conveniocotaexame.fil_codigo = old.fil_codigo and
        conveniocotaexame.exa_codigo = old.exa_codigo and
        conveniocotaexame.mco_codigo = old.mco_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela conveniocotaexame.'';
    end if;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.fil_codigo = old.fil_codigo and
        examerequisicao.exa_codigopai = old.exa_codigo and
        examerequisicao.mco_codigopai = old.mco_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    select count(*) into numrows
      from examematcoletataxa
      where
        examematcoletataxa.fil_codigo = old.fil_codigo and
        examematcoletataxa.exa_codigo = old.exa_codigo and
        examematcoletataxa.mco_codigo = old.mco_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examematcoletataxa.'';
    end if;

    delete from detalhetabelaprecometodologia
      where
        detalhetabelaprecometodologia.fil_codigo = old.fil_codigo and
        detalhetabelaprecometodologia.exa_codigo = old.exa_codigo and
        detalhetabelaprecometodologia.mco_codigo = old.mco_codigo;

    select count(*) into numrows
      from examerequisicaoweb
      where
        examerequisicaoweb.fil_codigo = old.fil_codigo and
        examerequisicaoweb.exa_codigo = old.exa_codigo and
        examerequisicaoweb.mco_codigo = old.mco_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicaoweb.'';
    end if;

    select count(*) into numrows
      from examematcoletalabexterno
      where
        examematcoletalabexterno.fil_codigo = old.fil_codigo and
        examematcoletalabexterno.exa_codigo = old.exa_codigo and
        examematcoletalabexterno.mco_codigo = old.mco_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examematcoletalabexterno.'';
    end if;

    select count(*) into numrows
      from contrassenharequisicaoexame
      where
        contrassenharequisicaoexame.fil_codigo = old.fil_codigo and
        contrassenharequisicaoexame.exa_codigo = old.exa_codigo and
        contrassenharequisicaoexame.mco_codigo = old.mco_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela contrassenharequisicaoexame.'';
    end if;

    select count(*) into numrows
      from examerequisicaoguiaagrupada
      where
        examerequisicaoguiaagrupada.fil_codigo = old.fil_codigo and
        examerequisicaoguiaagrupada.exa_codfilho = old.exa_codigo and
        examerequisicaoguiaagrupada.mco_codfilho = old.mco_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicaoguiaagrupada.'';
    end if;

    select count(*) into numrows
      from conveniospreco
      where
        conveniospreco.fil_codigo = old.fil_codigo and
        conveniospreco.exa_codigo = old.exa_codigo and
        conveniospreco.mco_codigo = old.mco_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela conveniospreco.'';
    end if;

    select count(*) into numrows
      from orcamentoconvenioexame
      where
        orcamentoconvenioexame.fil_codigo = old.fil_codigo and
        orcamentoconvenioexame.exa_codigo = old.exa_codigo and
        orcamentoconvenioexame.mco_codigo = old.mco_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela orcamentoconvenioexame.'';
    end if;

    delete from examematcoletaitemplanilha
      where
        examematcoletaitemplanilha.fil_codigo = old.fil_codigo and
        examematcoletaitemplanilha.exa_codigo = old.exa_codigo and
        examematcoletaitemplanilha.mco_codigo = old.mco_codigo;

    delete from examematgrupo
      where
        examematgrupo.fil_codigo = old.fil_codigo and
        examematgrupo.exa_codigo = old.exa_codigo and
        examematgrupo.mco_codigo = old.mco_codigo;

    delete from examematconvenioprazo
      where
        examematconvenioprazo.fil_codigo = old.fil_codigo and
        examematconvenioprazo.exa_codigo = old.exa_codigo and
        examematconvenioprazo.mco_codigo = old.mco_codigo;

    select count(*) into numrows
      from faturaexamerequisicao
      where
        faturaexamerequisicao.fil_codigo = old.fil_codigo and
        faturaexamerequisicao.exa_codfilho = old.exa_codigo and
        faturaexamerequisicao.mco_codfilho = old.mco_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela faturaexamerequisicao.'';
    end if;

    select count(*) into numrows
      from exameagrupasituacao
      where
        exameagrupasituacao.fil_codigo = old.fil_codigo and
        exameagrupasituacao.exa_codigo = old.exa_codigo and
        exameagrupasituacao.mco_codigo = old.mco_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela exameagrupasituacao.'';
    end if;

    select count(*) into numrows
      from exameagrupaexameconvenio
      where
        exameagrupaexameconvenio.fil_codigo = old.fil_codigo and
        exameagrupaexameconvenio.exa_kodigo = old.exa_codigo and
        exameagrupaexameconvenio.mco_kodigo = old.mco_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela exameagrupaexameconvenio.'';
    end if;

    delete from agrupaexameconvenio
      where
        agrupaexameconvenio.fil_codigo = old.fil_codigo and
        agrupaexameconvenio.exa_codigo = old.exa_codigo and
        agrupaexameconvenio.mco_codigo = old.mco_codigo;

    select count(*) into numrows
      from interfaceexamerequisicaodesm
      where
        interfaceexamerequisicaodesm.fil_codigo = old.fil_codigo and
        interfaceexamerequisicaodesm.exa_kodigo = old.exa_codigo and
        interfaceexamerequisicaodesm.mco_kodigo = old.mco_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela interfaceexamerequisicaodesm.'';
    end if;

    select count(*) into numrows
      from interfaceexmreqsimplesdesm
      where
        interfaceexmreqsimplesdesm.fil_codigo = old.fil_codigo and
        interfaceexmreqsimplesdesm.exa_kodigo = old.exa_codigo and
        interfaceexmreqsimplesdesm.mco_kodigo = old.mco_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela interfaceexmreqsimplesdesm.'';
    end if;

    delete from examescontrole
      where
        examescontrole.fil_codigo = old.fil_codigo and
        examescontrole.exa_codigo = old.exa_codigo and
        examescontrole.mco_codigo = old.mco_codigo;

    select count(*) into numrows
      from examematintdesmembrar
      where
        examematintdesmembrar.fil_codigo = old.fil_codigo and
        examematintdesmembrar.exa_kodigo = old.exa_codigo and
        examematintdesmembrar.mco_kodigo = old.mco_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examematintdesmembrar.'';
    end if;

    delete from examematinterface
      where
        examematinterface.fil_codigo = old.fil_codigo and
        examematinterface.exa_codigo = old.exa_codigo and
        examematinterface.mco_codigo = old.mco_codigo;

    delete from examesprincipios
      where
        examesprincipios.fil_codigo = old.fil_codigo and
        examesprincipios.exa_codigo = old.exa_codigo and
        examesprincipios.mco_codigo = old.mco_codigo;

    select count(*) into numrows
      from examerequisicao
      where
        examerequisicao.fil_codigo = old.fil_codigo and
        examerequisicao.exa_codigo = old.exa_codigo and
        examerequisicao.mco_codigo = old.mco_codigo;
    if (numrows > 0) then
      raise exception ''o registro nao pode ser excluido, por estar sendo utilizado na tabela examerequisicao.'';
    end if;

    delete from examesmatconvenio
      where
        examesmatconvenio.fil_codigo = old.fil_codigo and
        examesmatconvenio.exa_codigo = old.exa_codigo and
        examesmatconvenio.mco_codigo = old.mco_codigo;

    delete from detalhetabelapreco
      where
        detalhetabelapreco.fil_codigo = old.fil_codigo and
        detalhetabelapreco.exa_codigo = old.exa_codigo and
        detalhetabelapreco.mco_codigo = old.mco_codigo;

    delete from materialexame
      where
        materialexame.fil_codigo = old.fil_codigo and
        materialexame.exa_codigo = old.exa_codigo and
        materialexame.mco_codigo = old.mco_codigo;

    delete from reciptriagem
      where
        reciptriagem.fil_codigo = old.fil_codigo and
        reciptriagem.exa_codigo = old.exa_codigo and
        reciptriagem.mco_codigo = old.mco_codigo;

    delete from examelayout
      where
        examelayout.fil_codigo = old.fil_codigo and
        examelayout.exa_codigo = old.exa_codigo and
        examelayout.mco_codigo = old.mco_codigo;

    delete from recipcoleta
      where
        recipcoleta.fil_codigo = old.fil_codigo and
        recipcoleta.exa_codigo = old.exa_codigo and
        recipcoleta.mco_codigo = old.mco_codigo;


return old;
end;'
language 'plpgsql';
					
create trigger td_examematcoleta
after delete on examematcoleta
for each row execute procedure fn_td_examematcoleta();


drop function fn_ti_examematcoleta() cascade;

create function fn_ti_examematcoleta() returns opaque as '
declare
	numrows integer;
	tmp varchar;									 
begin
    select count(*) into numrows
      from metodologia
      where
        new.fil_codigo = metodologia.fil_codigo and
        new.met_codigo = metodologia.met_codigo;
    tmp:=''metodologia|'';
    
      tmp:=tmp || ''fil_codigo='' || new.fil_codigo || ''|'';
    
      tmp:=tmp || ''met_codigo='' || new.met_codigo || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);

    if (
      new.fil_codigo is not null and
      new.met_codigo is not null and
      numrows = 0
    ) then
      raise exception ''o registro nao pode ser inserido, pois um valor informado nao existe na tabela metodologia. chave para consulta:[%]'',tmp using errcode=upper(''ifkne'');
    end if;

    select count(*) into numrows
      from prazoentrega
      where
        new.fil_codigo = prazoentrega.fil_codigo and
        new.prz_codigo = prazoentrega.prz_codigo;
    tmp:=''prazoentrega|'';
    
      tmp:=tmp || ''fil_codigo='' || new.fil_codigo || ''|'';
    
      tmp:=tmp || ''prz_codigo='' || new.prz_codigo || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);

    if (
      new.fil_codigo is not null and
      new.prz_codigo is not null and
      numrows = 0
    ) then
      raise exception ''o registro nao pode ser inserido, pois um valor informado nao existe na tabela prazoentrega. chave para consulta:[%]'',tmp using errcode=upper(''ifkne'');
    end if;

    select count(*) into numrows
      from materialcoleta
      where
        new.fil_codigo = materialcoleta.fil_codigo and
        new.mco_codigo = materialcoleta.mco_codigo;
    tmp:=''materialcoleta|'';
    
      tmp:=tmp || ''fil_codigo='' || new.fil_codigo || ''|'';
    
      tmp:=tmp || ''mco_codigo='' || new.mco_codigo || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);

    if (
      
      numrows = 0
    ) then
      raise exception ''o registro nao pode ser inserido, pois um valor informado nao existe na tabela materialcoleta. chave para consulta:[%]'',tmp using errcode=upper(''ifkne'');
    end if;

    select count(*) into numrows
      from exames
      where
        new.fil_codigo = exames.fil_codigo and
        new.exa_codigo = exames.exa_codigo;
    tmp:=''exames|'';
    
      tmp:=tmp || ''fil_codigo='' || new.fil_codigo || ''|'';
    
      tmp:=tmp || ''exa_codigo='' || new.exa_codigo || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);

    if (
      
      numrows = 0
    ) then
      raise exception ''o registro nao pode ser inserido, pois um valor informado nao existe na tabela exames. chave para consulta:[%]'',tmp using errcode=upper(''ifkne'');
    end if;


return new;
end;'
language 'plpgsql';
					
create trigger ti_examematcoleta
after insert on examematcoleta
for each row execute procedure fn_ti_examematcoleta();


drop function fn_tu_examematcoleta() cascade;

create function fn_tu_examematcoleta() returns opaque as '
declare
	numrows integer;
        tmp varchar;										 
begin
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from examematcoletahospital
      where
        examematcoletahospital.fil_codigo = old.fil_codigo and
        examematcoletahospital.exa_codigo = old.exa_codigo and
        examematcoletahospital.mco_codigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examematcoletahospital.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from interfaceexamereagente
      where
        interfaceexamereagente.fil_codigo = old.fil_codigo and
        interfaceexamereagente.exa_codigo = old.exa_codigo and
        interfaceexamereagente.mco_codigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela interfaceexamereagente.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from conveniosintegracaooperadora
      where
        conveniosintegracaooperadora.fil_codigo = old.fil_codigo and
        conveniosintegracaooperadora.exa_kodigo = old.exa_codigo and
        conveniosintegracaooperadora.mco_kodigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela conveniosintegracaooperadora.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from conveniosintegracaooperadora
      where
        conveniosintegracaooperadora.fil_codigo = old.fil_codigo and
        conveniosintegracaooperadora.exa_codigo = old.exa_codigo and
        conveniosintegracaooperadora.mco_codigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela conveniosintegracaooperadora.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from exportaintegracaooperadora
      where
        exportaintegracaooperadora.fil_codigo = old.fil_codigo and
        exportaintegracaooperadora.exa_codigo = old.exa_codigo and
        exportaintegracaooperadora.mco_codigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela exportaintegracaooperadora.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from examecorrelacaoconferencia
      where
        examecorrelacaoconferencia.fil_codigo = old.fil_codigo and
        examecorrelacaoconferencia.exa_kodigo = old.exa_codigo and
        examecorrelacaoconferencia.mco_kodigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examecorrelacaoconferencia.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from examecorrelacaoconferencia
      where
        examecorrelacaoconferencia.fil_codigo = old.fil_codigo and
        examecorrelacaoconferencia.exa_codigo = old.exa_codigo and
        examecorrelacaoconferencia.mco_codigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examecorrelacaoconferencia.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from loteexternoexamerequisicaodesm
      where
        loteexternoexamerequisicaodesm.fil_codigo = old.fil_codigo and
        loteexternoexamerequisicaodesm.exa_kodigo = old.exa_codigo and
        loteexternoexamerequisicaodesm.mco_kodigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela loteexternoexamerequisicaodesm.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from conveniocotaexame
      where
        conveniocotaexame.fil_codigo = old.fil_codigo and
        conveniocotaexame.exa_codigo = old.exa_codigo and
        conveniocotaexame.mco_codigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela conveniocotaexame.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.fil_codigo = old.fil_codigo and
        examerequisicao.exa_codigopai = old.exa_codigo and
        examerequisicao.mco_codigopai = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicao.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from examematcoletataxa
      where
        examematcoletataxa.fil_codigo = old.fil_codigo and
        examematcoletataxa.exa_codigo = old.exa_codigo and
        examematcoletataxa.mco_codigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examematcoletataxa.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from detalhetabelaprecometodologia
      where
        detalhetabelaprecometodologia.fil_codigo = old.fil_codigo and
        detalhetabelaprecometodologia.exa_codigo = old.exa_codigo and
        detalhetabelaprecometodologia.mco_codigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela detalhetabelaprecometodologia.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from examerequisicaoweb
      where
        examerequisicaoweb.fil_codigo = old.fil_codigo and
        examerequisicaoweb.exa_codigo = old.exa_codigo and
        examerequisicaoweb.mco_codigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicaoweb.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from examematcoletalabexterno
      where
        examematcoletalabexterno.fil_codigo = old.fil_codigo and
        examematcoletalabexterno.exa_codigo = old.exa_codigo and
        examematcoletalabexterno.mco_codigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examematcoletalabexterno.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from contrassenharequisicaoexame
      where
        contrassenharequisicaoexame.fil_codigo = old.fil_codigo and
        contrassenharequisicaoexame.exa_codigo = old.exa_codigo and
        contrassenharequisicaoexame.mco_codigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela contrassenharequisicaoexame.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from examerequisicaoguiaagrupada
      where
        examerequisicaoguiaagrupada.fil_codigo = old.fil_codigo and
        examerequisicaoguiaagrupada.exa_codfilho = old.exa_codigo and
        examerequisicaoguiaagrupada.mco_codfilho = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicaoguiaagrupada.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from conveniospreco
      where
        conveniospreco.fil_codigo = old.fil_codigo and
        conveniospreco.exa_codigo = old.exa_codigo and
        conveniospreco.mco_codigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela conveniospreco.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from orcamentoconvenioexame
      where
        orcamentoconvenioexame.fil_codigo = old.fil_codigo and
        orcamentoconvenioexame.exa_codigo = old.exa_codigo and
        orcamentoconvenioexame.mco_codigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela orcamentoconvenioexame.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from examematcoletaitemplanilha
      where
        examematcoletaitemplanilha.fil_codigo = old.fil_codigo and
        examematcoletaitemplanilha.exa_codigo = old.exa_codigo and
        examematcoletaitemplanilha.mco_codigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examematcoletaitemplanilha.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from examematgrupo
      where
        examematgrupo.fil_codigo = old.fil_codigo and
        examematgrupo.exa_codigo = old.exa_codigo and
        examematgrupo.mco_codigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examematgrupo.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from examematconvenioprazo
      where
        examematconvenioprazo.fil_codigo = old.fil_codigo and
        examematconvenioprazo.exa_codigo = old.exa_codigo and
        examematconvenioprazo.mco_codigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examematconvenioprazo.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from faturaexamerequisicao
      where
        faturaexamerequisicao.fil_codigo = old.fil_codigo and
        faturaexamerequisicao.exa_codfilho = old.exa_codigo and
        faturaexamerequisicao.mco_codfilho = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela faturaexamerequisicao.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from exameagrupasituacao
      where
        exameagrupasituacao.fil_codigo = old.fil_codigo and
        exameagrupasituacao.exa_codigo = old.exa_codigo and
        exameagrupasituacao.mco_codigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela exameagrupasituacao.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from exameagrupaexameconvenio
      where
        exameagrupaexameconvenio.fil_codigo = old.fil_codigo and
        exameagrupaexameconvenio.exa_kodigo = old.exa_codigo and
        exameagrupaexameconvenio.mco_kodigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela exameagrupaexameconvenio.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from agrupaexameconvenio
      where
        agrupaexameconvenio.fil_codigo = old.fil_codigo and
        agrupaexameconvenio.exa_codigo = old.exa_codigo and
        agrupaexameconvenio.mco_codigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela agrupaexameconvenio.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from interfaceexamerequisicaodesm
      where
        interfaceexamerequisicaodesm.fil_codigo = old.fil_codigo and
        interfaceexamerequisicaodesm.exa_kodigo = old.exa_codigo and
        interfaceexamerequisicaodesm.mco_kodigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela interfaceexamerequisicaodesm.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from interfaceexmreqsimplesdesm
      where
        interfaceexmreqsimplesdesm.fil_codigo = old.fil_codigo and
        interfaceexmreqsimplesdesm.exa_kodigo = old.exa_codigo and
        interfaceexmreqsimplesdesm.mco_kodigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela interfaceexmreqsimplesdesm.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from examescontrole
      where
        examescontrole.fil_codigo = old.fil_codigo and
        examescontrole.exa_codigo = old.exa_codigo and
        examescontrole.mco_codigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examescontrole.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from examematintdesmembrar
      where
        examematintdesmembrar.fil_codigo = old.fil_codigo and
        examematintdesmembrar.exa_kodigo = old.exa_codigo and
        examematintdesmembrar.mco_kodigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examematintdesmembrar.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from examematinterface
      where
        examematinterface.fil_codigo = old.fil_codigo and
        examematinterface.exa_codigo = old.exa_codigo and
        examematinterface.mco_codigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examematinterface.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from examesprincipios
      where
        examesprincipios.fil_codigo = old.fil_codigo and
        examesprincipios.exa_codigo = old.exa_codigo and
        examesprincipios.mco_codigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examesprincipios.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from examerequisicao
      where
        examerequisicao.fil_codigo = old.fil_codigo and
        examerequisicao.exa_codigo = old.exa_codigo and
        examerequisicao.mco_codigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examerequisicao.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from examesmatconvenio
      where
        examesmatconvenio.fil_codigo = old.fil_codigo and
        examesmatconvenio.exa_codigo = old.exa_codigo and
        examesmatconvenio.mco_codigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examesmatconvenio.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from detalhetabelapreco
      where
        detalhetabelapreco.fil_codigo = old.fil_codigo and
        detalhetabelapreco.exa_codigo = old.exa_codigo and
        detalhetabelapreco.mco_codigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela detalhetabelapreco.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from materialexame
      where
        materialexame.fil_codigo = old.fil_codigo and
        materialexame.exa_codigo = old.exa_codigo and
        materialexame.mco_codigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela materialexame.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from reciptriagem
      where
        reciptriagem.fil_codigo = old.fil_codigo and
        reciptriagem.exa_codigo = old.exa_codigo and
        reciptriagem.mco_codigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela reciptriagem.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from examelayout
      where
        examelayout.fil_codigo = old.fil_codigo and
        examelayout.exa_codigo = old.exa_codigo and
        examelayout.mco_codigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela examelayout.'';
    end if;
  end if;
  if
    (old.fil_codigo <> new.fil_codigo or 
     old.exa_codigo <> new.exa_codigo or 
     old.mco_codigo <> new.mco_codigo) then
    select count(*)
      from recipcoleta
      where
        recipcoleta.fil_codigo = old.fil_codigo and
        recipcoleta.exa_codigo = old.exa_codigo and
        recipcoleta.mco_codigo = old.mco_codigo into numrows;
    if (numrows > 0) then
     raise exception ''o registro nao pode ser alterado, pois um valor esta sendo utilizado na tabela recipcoleta.'';
    end if;
  end if;
  select count(*) into numrows
    from metodologia
    where
      new.fil_codigo = metodologia.fil_codigo and
      new.met_codigo = metodologia.met_codigo;
    tmp:=''metodologia|'';
    
      tmp:=tmp || ''fil_codigo='' || new.fil_codigo || ''|'';
    
      tmp:=tmp || ''met_codigo='' || new.met_codigo || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);
  if (
    new.fil_codigo is not null and
    new.met_codigo is not null and
    numrows = 0
  ) then
    raise exception ''o registro nao pode ser alterado, pois um valor nao existe na tabela metodologia. chave para consulta:[%]'',tmp using errcode=upper(''ufkne'');
  end if;

  select count(*) into numrows
    from prazoentrega
    where
      new.fil_codigo = prazoentrega.fil_codigo and
      new.prz_codigo = prazoentrega.prz_codigo;
    tmp:=''prazoentrega|'';
    
      tmp:=tmp || ''fil_codigo='' || new.fil_codigo || ''|'';
    
      tmp:=tmp || ''prz_codigo='' || new.prz_codigo || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);
  if (
    new.fil_codigo is not null and
    new.prz_codigo is not null and
    numrows = 0
  ) then
    raise exception ''o registro nao pode ser alterado, pois um valor nao existe na tabela prazoentrega. chave para consulta:[%]'',tmp using errcode=upper(''ufkne'');
  end if;

  select count(*) into numrows
    from materialcoleta
    where
      new.fil_codigo = materialcoleta.fil_codigo and
      new.mco_codigo = materialcoleta.mco_codigo;
    tmp:=''materialcoleta|'';
    
      tmp:=tmp || ''fil_codigo='' || new.fil_codigo || ''|'';
    
      tmp:=tmp || ''mco_codigo='' || new.mco_codigo || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);
  if (
    
    numrows = 0
  ) then
    raise exception ''o registro nao pode ser alterado, pois um valor nao existe na tabela materialcoleta. chave para consulta:[%]'',tmp using errcode=upper(''ufkne'');
  end if;

  select count(*) into numrows
    from exames
    where
      new.fil_codigo = exames.fil_codigo and
      new.exa_codigo = exames.exa_codigo;
    tmp:=''exames|'';
    
      tmp:=tmp || ''fil_codigo='' || new.fil_codigo || ''|'';
    
      tmp:=tmp || ''exa_codigo='' || new.exa_codigo || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);
  if (
    
    numrows = 0
  ) then
    raise exception ''o registro nao pode ser alterado, pois um valor nao existe na tabela exames. chave para consulta:[%]'',tmp using errcode=upper(''ufkne'');
  end if;


return old;
end;'
language 'plpgsql';
					
create trigger tu_examematcoleta
after update on examematcoleta
for each row execute procedure fn_tu_examematcoleta();


--drop function fn_td_examematcoletahospital() cascade;

create function fn_td_examematcoletahospital() returns opaque as '
declare
	numrows integer;										 
begin
    delete from examematcoleta
      where
        old.fil_codigo = examematcoleta.fil_codigo and
        old.exa_codigo = examematcoleta.exa_codigo and
        old.mco_codigo = examematcoleta.mco_codigo;


return old;
end;'
language 'plpgsql';
					
create trigger td_examematcoletahospital
after delete on examematcoletahospital
for each row execute procedure fn_td_examematcoletahospital();


--drop function fn_ti_examematcoletahospital() cascade;

create function fn_ti_examematcoletahospital() returns opaque as '
declare
	numrows integer;
	tmp varchar;									 
begin
    select count(*) into numrows
      from examematcoleta
      where
        new.fil_codigo = examematcoleta.fil_codigo and
        new.exa_codigo = examematcoleta.exa_codigo and
        new.mco_codigo = examematcoleta.mco_codigo;
    tmp:=''examematcoleta|'';
    
      tmp:=tmp || ''fil_codigo='' || new.fil_codigo || ''|'';
    
      tmp:=tmp || ''exa_codigo='' || new.exa_codigo || ''|'';
    
      tmp:=tmp || ''mco_codigo='' || new.mco_codigo || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);

    if (
      
      numrows = 0
    ) then
      raise exception ''o registro nao pode ser inserido, pois um valor informado nao existe na tabela examematcoleta. chave para consulta:[%]'',tmp using errcode=upper(''ifkne'');
    end if;


return new;
end;'
language 'plpgsql';
					
create trigger ti_examematcoletahospital
after insert on examematcoletahospital
for each row execute procedure fn_ti_examematcoletahospital();


--drop function fn_tu_examematcoletahospital() cascade;

create function fn_tu_examematcoletahospital() returns opaque as '
declare
	numrows integer;
        tmp varchar;										 
begin
  select count(*) into numrows
    from examematcoleta
    where
      new.fil_codigo = examematcoleta.fil_codigo and
      new.exa_codigo = examematcoleta.exa_codigo and
      new.mco_codigo = examematcoleta.mco_codigo;
    tmp:=''examematcoleta|'';
    
      tmp:=tmp || ''fil_codigo='' || new.fil_codigo || ''|'';
    
      tmp:=tmp || ''exa_codigo='' || new.exa_codigo || ''|'';
    
      tmp:=tmp || ''mco_codigo='' || new.mco_codigo || ''|'';
    
    tmp:=substring(tmp,1,length(tmp)-1);
  if (
    
    numrows = 0
  ) then
    raise exception ''o registro nao pode ser alterado, pois um valor nao existe na tabela examematcoleta. chave para consulta:[%]'',tmp using errcode=upper(''ufkne'');
  end if;


return old;
end;'
language 'plpgsql';
					
create trigger tu_examematcoletahospital
after update on examematcoletahospital
for each row execute procedure fn_tu_examematcoletahospital();


select configurageralog('examematcoletahospital');

insert into atualizacoes(atu_nome) values ('v21050005_201021.sql');
