[firebase-br] Insert or update

Evandro Siqueira vansiqq em gmail.com
Sex Jun 20 07:33:18 -03 2008


Olá Janderson,

Segue a sintaxe e exemplos retirados da "releases notes" do FB 2.1:

UPDATE OR INSERT Statement
Adriano dos Santos Fernandes
(v.2.1)
This syntax has been introduced to enable a record to be either updated or
inserted, according to whether or not it already exists (checked with IS NOT
DISTINCT). The statement is available in both DSQL and PSQL.

Syntax Pattern

UPDATE OR INSERT INTO <table or view> [(<column_list>)]
VALUES (<value_list>)
[MATCHING <column_list>]
[RETURNING <column_list> [INTO <variable_list>]]

Examples

1.UPDATE OR INSERT INTO T1 (F1, F2)
VALUES (:F1, :F2);

2.UPDATE OR INSERT INTO EMPLOYEE (ID, NAME)
VALUES (:ID, :NAME)
RETURNING ID;

3.UPDATE OR INSERT INTO T1 (F1, F2)
VALUES (:F1, :F2)
MATCHING (F1);

4.UPDATE OR INSERT INTO EMPLOYEE (ID, NAME)
VALUES (:ID, :NAME)
RETURNING OLD.NAME;

Eu falei que estou abusando por que tinha muitas SP que fazia algo do tipo:
procure, se achar UPDATE se não achar INSERT e este comando pra mim foi uma
mão na roda.

Espero ter ajudado,
Evandro

2008/6/19 Janderson Almeida <jandersonloko em gmail.com>:

> Sabia que  tinha uma versão que usava isso, qual a sintax e como isso
> funciona????
>
> naum achei muita coisa sobre o assunto na web.
>
> Grato.
>
> Janderson Almeida.
>
> 2008/6/19 Evandro Siqueira <vansiqq em gmail.com>:
>
> > Com certeza a 2.1
> >
> > E Funciona muito bem por que estou abusando da dita cuja... hehehe
> >
> > 2008/6/18 Janderson Almeida <jandersonloko em gmail.com>:
> >
> > > Qual versão do firebird suporta essa sintax e como se usa?
> > >
> > > Grato.
> > >
> > > Janderon Almeida.
> > > ______________________________________________
> > > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > > http://www.firebase.com.br/fb/artigo.php?id=1107
> > > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> > >
> >
> >
> >
> > --
> > Evandro Siqueira
> > Programador
> > Aracaju/SE
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



-- 
Evandro Siqueira
Programador
Aracaju/SE



Mais detalhes sobre a lista de discussão lista