SQL - Como juntar en un insert 3 campos

 
Vista:
sin imagen de perfil

Como juntar en un insert 3 campos

Publicado por capoeira (2 intervenciones) el 07/09/2010 21:14:05
Buenas tardes:

Como podria hacer para que en un trigger que inserta varios campos a una tabla que uno de esos campos se el conjunto de 3 campos.

INSERT INTO tabla
VALUES (:new.campo1,:new.campo2, :new.campo3,:new.campo1+:new.campo2+:new.campo3)

quiero que el resultado del ultimo campo sea como este ejemplo:
campo1 = 'hola'
campo2 = 'mundo'
campo3= 'nuevo'
sumadelcampo= 'hola mundo nuevo'

MUCHAS GRACIAS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

RE:Como juntar en un insert 3 campos

Publicado por Leonardo Josué (1173 intervenciones) el 07/09/2010 23:18:18
Hola capoeira, no mencionas qué manejador de base de Datos estás utilizando. En SQL Server es posible definir Campos Calculados al momento de crear una tabla, es decir, puedes definir algo como esto:

CREATE TABLE [Tabla](
[Campo1] [nvarchar](50) NULL,
[Campo2] [nvarchar](50) NULL,
[Campo3] [nvarchar](50) NULL,
[Campo4] AS [Campo1]+[Campo2]+[Campo3]
) ON [PRIMARY]

En Oracle puedes definir un disparador después de insertar para que te actualice el campo calculado, tengo algún tiempo que no utilizo Oracle, pero creo que la sintaxis sería más o menos así:

CREATE OR REPLACE TRIGGER myTrigger
AFTER INSERT ON Tabla
BEGIN
UPDATE BORRAR SET Campo4 = Campo1||Campo2||Campo3;
END;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

RE:Como juntar en un insert 3 campos

Publicado por Leonardo Josué (1173 intervenciones) el 07/09/2010 23:51:37
De hecho no hay necesidad de que sea después del insert... puedes crear un trigger antes del insert y simplemente modificar el campo que quieres concatenar. algo como esto:

CREATE OR REPLACE
TRIGGER MyTrigger
BEFORE INSERT ON Tabla
for each row
BEGIN
:new.sumadelcampo:= :new.Campo1 || :new.Campo2 || :new.Campo3;
END;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Como juntar en un insert 3 campos

Publicado por capoeira (2 intervenciones) el 08/09/2010 00:13:19
Muchas Gracias por la ayuda, me ha funciona con las ||

Mil Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar