Sqlite

2 respostas
E
Alguem poderia me ajudar;

_ Como poderia montar em uma mesma TABLE uma coluna resultado de duas outras colunas, assim

CREAE TABLE( T1 INT, T2 INT, T3 = T1+T3));

2 Respostas

B

Acho que isso não tem como, amigo. (Não conheço, pelo menos)
O que você pode fazer é criar procedures/triggers que venham a atualizar essa coluna a cada insert/update na linha, para fazer a recontagem dos valores.

B

Criei um exemplo no postgres usando trigger:

create table teste
(

     codigo serial,
     valor1 numeric,
     valor2 numeric,
     soma   numeric
 );

 CREATE OR REPLACE FUNCTION valida()
  RETURNS "trigger" AS
$BODY$
    DECLARE
     v1      NUMERIC;
     v2      NUMERIC;
    BEGIN
        IF TG_OP='INSERT' OR TG_OP='UPDATE' THEN
	     v1 = new.valor1;
	     v2 = new.valor2;
	     new.soma = (v1+v2);       
        END IF;
        IF TG_OP='DELETE' THEN
          RETURN OLD;
        ELSE
          RETURN NEW;
        END IF;
    END;
$BODY$
  LANGUAGE plpgsql VOLATILE;

CREATE TRIGGER valida
  BEFORE INSERT OR UPDATE OR DELETE
  ON teste
  FOR EACH ROW
  EXECUTE PROCEDURE valida();

obs: Você pode especificar quando essa função/trigger será executada, basta alterar a linha "BEFORE INSERT OR UPDATE OR DELETE". 
Pode ser tipo: beforte insert, after insert, after delete e etc...

  
 INSERT INTO teste(valor1, valor2) values (10,20);

No final, o resultado foi:
soma = 30

Criado 19 de maio de 2014
Ultima resposta 20 de mai. de 2014
Respostas 2
Participantes 2