[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