[firebase-br] Problemas com AutoIncrement e INSERT

Osvaldo cslinf em uol.com.br
Qui Jun 29 14:20:04 -03 2006


Valeu pela dica, o DEFAULT 0 estava no Domain, eu alterei e tudo funcionou.

Osvaldo P.G.U.


"Andrei Luís" <compuvale.software em gmail.com>
escreveu na mensagem
news:bae8f99c0606290901n490009a6j1607557a3c76f5be em mail.gmail.com...
Osvaldo,

O problema é que vocês está atribuindo um valor default = 0 para o
campo id_midia, a trigger só vai attribuir o valor do generator + 1 se
o campos estiver null veja esse trecho do código que você passou:

IF (NEW.ID_MIDIA IS NULL) THEN
    NEW.ID_MIDIA = GEN_ID(GEN_TB_MIDIA_ID,1);

Você tem duas saídas:

- tirar o valor default da campo id_midia

ou

- alterar a trigger assim:
IF (NEW.ID_MIDIA = 0) THEN
    NEW.ID_MIDIA = GEN_ID(GEN_TB_MIDIA_ID,1);

[]
Andrei


Em 29/06/06, Osvaldo<cslinf em uol.com.br>
escreveu:
> Aqui vai o texto pelo IB EXPERT, tudo foi criado direito, pelo menos eu
acho
>
> Osvaldo P.G.U.
>
> ================================================================
>
>
> CREATE GENERATOR GEN_TB_MIDIA_ID;
>
> CREATE TABLE TB_MIDIA (
>    ID_MIDIA  DM_INTEIRO NOT NULL /* DM_INTEIRO = INTEGER DEFAULT 0 */,
>    DS_MIDIA  DM_VC40 /* DM_VC40 = VARCHAR(40) */,
>    CD_MIDIA  DM_CH02 /* DM_CH02 = CHAR(2) */
> );
>
>
>
>
>
/***************************************************************************
> ***/
> /***                              Primary Keys
> ***/
>
/***************************************************************************
> ***/
>
> ALTER TABLE TB_MIDIA ADD CONSTRAINT PK_TB_MIDIA PRIMARY KEY (ID_MIDIA);
>
>
>
/***************************************************************************
> ***/
> /***                                Triggers
> ***/
>
/***************************************************************************
> ***/
>
>
> SET TERM ^ ;
>
>
>
/***************************************************************************
> ***/
> /***                          Triggers for tables
> ***/
>
/***************************************************************************
> ***/
>
>
>
> /* Trigger: TB_MIDIA_BI */
> CREATE TRIGGER TB_MIDIA_BI FOR TB_MIDIA
> ACTIVE BEFORE INSERT POSITION 0
> AS
> BEGIN
>  IF (NEW.ID_MIDIA IS NULL) THEN
>    NEW.ID_MIDIA = GEN_ID(GEN_TB_MIDIA_ID,1);
> END
> ^
>
>
> SET TERM ; ^

______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa







Mais detalhes sobre a lista de discussão lista