MySQL - inser condicionado

 
Vista:

inser condicionado

Publicado por cesar (3 intervenciones) el 28/01/2009 19:24:41
necesito insertar datos en una tabla, pero, la insercion de cada registro insertado dpende sde si se cumple una condicion en otra tabla.

"insercion"(tabla notgrav)
INSERT INTO notgrav VALUES (inmgen.NotUltIns,inmgen.inmfdr,inmgen.inmdistid,1,2009,'comentario',0,0,0,628,'')

"condicion"(tabla inmgen)
WHERE inmgen.InmDistId = 17 and inmgen.MunId = 53

No se como hacer una query con estos datos
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

RE:inser condicionado

Publicado por EMILIANO (98 intervenciones) el 29/01/2009 16:16:18
La clausula INSET no tiene no tiene WHERE , la que tiene es la sentencia UPDATE pero para eso debe haber un registro en la tabla, porque esta sentencia actualiza el registro.

Lo que yo haria seria una Procedimiento almacenado que son funciones guardadas dentro de una base.
Ponele que sea algo asi
--------------------------------------------------------------------------------------------------------------
DELIMITER $$

DROP PROCEDURE IF EXISTS `base1`.`Ejemplo1` $$
CREATE PROCEDURE `Ejemplo1`(IN InmDistId INT(10),IN MunId INT(10))

BEGIN

DECLARE nCount INT(10) DEFAULT 0;

SELECT COUNT(*) INTO nCount FROM inmgen WHERE
inmgen.InmDistId = 17 and inmgen.MunId = 53 ;

IF nCount > 0 THEN
INSERT INTO notgrav VALUES
(inmgen.NotUltIns,inmgen.inmfdr,inmgen.inmdistid,1,2009,
'comentario',0,0,0,628,'') ;

ENDIF;


END $$

DELIMITER ;

------------------------------------------------------------------------------------------------------------
A la varibles que insertas (inmgen.NotUltIns,inmgen.inmfdr,inmgen.inmdistid,1,2009,
'comentario',0,0,0,628,'') se las tenes que pasar al procedimiento ( en este ejemplo solo pase dos IN InmDistId INT(10),IN MunId INT(10) a modo de ejemplo)no las agregue yo para hacerlo mas corto.

Y a este procedimiento lo llamas como cualquier sentencia Sql asi
CALL0 Ejemplo1(17,53);

Al principio parece un poco complicado pero cuando le agarras la manos es facil.

Suerte espero que te sirva.
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

RE:inser condicionado

Publicado por Juan Manuel Castañeda (1 intervención) el 01/02/2009 22:21:27
INSERT INTO tabla1 SELECT campos FROM tabla2
Si tabla1 y tabla tienen los miismos campos
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