create or replace function temoid() returns boolean language plpgsql as $$
declare 
total int;
begin 
	SELECT count(oid) into total from examematintdesmembrar;
    if not found then
      return false;
    else
      return true;
    end if;
exception 
  when others then 
    return false;
end
$$; --[lode]

create or replace function atualizaordem() returns boolean language plpgsql as $$
declare
  versao varchar;
  o int;
  contador int;
  rec record;
begin
	contador = 1;
	if (temoid()) then
	  update examematintdesmembrar set emd_ordem = oid;
	else
	  for rec in select * from examematintdesmembrar loop
	  	update examematintdesmembrar set emd_ordem = contador where fil_codigo = rec.fil_codigo
	  	and exa_codigo = rec.exa_codigo and mco_codigo = rec.mco_codigo
	  	and int_codigo = rec.int_codigo and exa_kodigo = rec.exa_kodigo
	  	and mco_kodigo = rec.mco_kodigo;
	  	contador = contador + 1;
	  end loop;      
	end if;
return true;
end;
$$; --[lode]

alter table examematintdesmembrar add emd_ordem integer; --[lode]

select atualizaordem(); --[lode]

drop function temoid(); --[lode]
drop function atualizaordem(); --[lode]

insert into atualizacoes(atu_nome) values ('v23010001_250123.sql'); --[lode]

alter table tipousuario add tpu_inativo boolean default false; --[lode]

insert into atualizacoes(atu_nome) values ('v23010002_250123.sql'); --[lode]