Olá Pessoal, Esse é meu primeiro post.Não tenho muito experiencia com
PostgreSQL.Estou fazendo a seguinte consulta para em seguida fazer alguns
DELETES, porem esta dando erro.DO $$DECLARE reserva_veiculo INTEGER[];
movimento_veiculo INTEGER[]; i INTEGER;
BEGIN
i:=0;
reserva_veiculo := ARRAY (select r.id_reserva_veiculo
from transporte.movimento_veiculo m
inner join transporte.reserva_veiculo r on (r.id_movimento_veiculo
= m.id_movimento_veiculo)
left join requisicoes.requisicao_reserva_veiculo req on
(req.id_reserva_veiculo = r.id_reserva_veiculo)
inner join transporte.veiculo v on (v.id_veiculo = r.id_veiculo)
where
--req.numero=21937
v.placa = 'JKO-4601')::integer[];
movimento_veiculo := ARRAY (select m.id_movimento_veiculo
from transporte.movimento_veiculo m
inner join transporte.reserva_veiculo r on (r.id_movimento_veiculo
= m.id_movimento_veiculo)
left join requisicoes.requisicao_reserva_veiculo req on
(req.id_reserva_veiculo = r.id_reserva_veiculo)
inner join transporte.veiculo v on (v.id_veiculo = r.id_veiculo)
where
--req.numero=21937
v.placa = 'JKO-4601')::integer[];
FOR i in 1..array_length(reserva_veiculo,1) loop
raise notice 'reserva_veiculo: %', reserva_veiculo[i];
delete from transporte.motorista_reserva where
motorista_reserva.id_reserva_veiculo= reserva_veiculo[i];
delete from requisicoes.requisicao_reserva_veiculo r where
r.id_reserva_veiculo= reserva_veiculo[i];
delete from transporte.reserva_veiculo rv where
rv.id_reserva_veiculo= reserva_veiculo[i];
end loop;
i :=0;
FOR i in 1..array_length(movimento_veiculo,1) loop
raise notice 'movimento_veiculo: %', movimento_veiculo[i];
delete from transporte.movimento_veiculo_passageiro mv where
mv.id_movimento_veiculo= movimento_veiculo[i];
delete from transporte.trecho_percorrido mv1 where
mv1.id_movimento_veiculo= movimento_veiculo[i];
delete from transporte.movimento_veiculo mv2 where
mv2.id_movimento_veiculo= movimento_veiculo[i];
end loop;
END$$;
Porem está dando o seguinte erro:ERROR: permission denied for schema transporte
LINE 1: SELECT 1 FROM ONLY "transporte"."anexo_movimento_veiculo" x ...
^
QUERY: SELECT 1 FROM ONLY "transporte"."anexo_movimento_veiculo" x WHERE $1
OPERATOR(pg_catalog.=) "id_movimento_veiculo" FOR KEY SHARE OF x
CONTEXT: SQL statement "delete from transporte.movimento_veiculo mv2 where
mv2.id_movimento_veiculo= movimento_veiculo[i]"
PL/pgSQL function inline_code_block line 38 at SQL statementSim, tenho
permissão para excluir. Se eu rodar somente as linhas dos deletes, substituindo
as variáveis. A exclusão acontece sem erros. Obrigado pela atenção _______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral