[firebase-br] Update or Insert - Nao informar o ID

Carlos H. Cantu listas em warmboot.com.br
Qui Maio 10 16:51:35 -03 2012


Estou supondo que customer_id seja chave primária.

O update or insert primeiro checa nos registros da tabela se existe
algum com o mesmo valor na chave primária (ou nos campos definidos
pelo matching), se existir ele atualiza, caso contrário, aí sim ele
executa o insert.

Sendo assim, no trigger before insert da tabela customer, verifique se
o campo customer_id é nulo, se for, atribua a ele um valor vindo de um
generator, se não for nulo, não faça nada, usando assim o valor que
foi passado, ex:

if (new.customer_id is null) then
  new.customer_id = gen_id(meu_generator,1);

[]s
Carlos H. Cantu
www.FireBase.com.br - www.firebirdnews.org
www.warmboot.com.br - blog.firebase.com.br

MM> Pessoal,
MM> Vejam abaixo:

MM>   update or insert into CUSTOMER (CUSTOMER_ID, COMPANY_NAME, PRICE,
MM> USERNAME)
MM>   values (:CUSTOMER_ID, :COMPANY_NAME, :PRICE, :USERNAME)
MM>   returning CUSTOMER_ID into :O_CUSTUMER_ID;

MM> O que eu preciso é nao informar um :CUSTOMER_ID valido para que um novo
MM> registro seja inserido na tabela CUSTOMER e o valor para o novo CUSTOMER_ID
MM> criado fosse devinido em um trigger before insert
MM> E quando eu informar um :CUSTOMER_ID valido este registro seja apenas
MM> atualizado.
MM> Quando digo valido estou me referindo a este valor existir ou nao dentre os
MM> registros cadastrados.

MM> Obrigado pela atenção.





Mais detalhes sobre a lista de discussão lista