Pessoal,
Pesquisei muito e não entrei da forma que estou procurando.
Imaginem a seguinte situação, muito comum, mas, quero ver se existe alguma
solução mais "elegante" que me auxilie.

2 tabelas

tab PEDIDOS

id serial  -> PK
nome_cliente text
dt timestamp
funcionario int


tab PEDIDOS_itens

pedido  int -> PK  (referenciando ID da tabela PEDIDOS)
produto int -> PK
qtde int
valor real

Não vou entrar em questionamento da criação da tabela. É um exemplo.

Sem pensar muito, sigo a seguinte lógica:
-incluo no banco de dados o registro da tab PEDIDOS
-como ID é serial, via select vejo o ultimo registo com o max()
-uso o resultado para incluir os itens na tabela PEDIDOS_itens, junto com o
código de produto.

Pois bem, porem, esta situação é bem propicia para um programa de pedidos,
nf ou outro que tenha um esquema parecido e que só 1 pessoa use por vez.
Agora, quando vários usuários estão usando este sistema, o risco de usar
códigos ID errados nos itens é muito grande.
Ai vem a dúvida:
Para tentar evitar isso, como nas tabelas eu cadastro também quem está
operando (funcionario), eu faço um filtro selecionando o ultimo que ele
incluiu e o resultado utilizo.
Lógico que tudo pode acontecer. Já tive caso de pessoas usarem a senha das
outras etc.

o pg possui algo que me auxilie?

tenho puco conhecimento em pl/sql, mas, quero criar um procedimento para
isso.
Estou no caminho correto?
Imagino que dentro de um procedimento, vou estar "isolado"
E teria alguma função que me retornaria o conteúdo do ultimo registro
adicionado?


Eduardo Az
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a