elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  insertar valor1 en tabla1 si valor1 existe en tabla2 [SOLUCIONADO]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: insertar valor1 en tabla1 si valor1 existe en tabla2 [SOLUCIONADO]  (Leído 2,967 veces)
KandiZickZad

Desconectado Desconectado

Mensajes: 20



Ver Perfil WWW
insertar valor1 en tabla1 si valor1 existe en tabla2 [SOLUCIONADO]
« en: 17 Octubre 2010, 19:50 pm »

bueeenas, mi duda es, como hacer lo siguiente en mysql

tengo dos tablas.... tabla1 y tabla2
y un valor1

quiero insertar valor1 en tabla1 solo si el valor existe en tabla2

el codigo que hice es este....pero no funciona...

Código
  1. CREATE DEFINER=`root`@`localhost` PROCEDURE `insertaSupervisor`(in idempleado integer)
  2.        if exists
  3.                (select empleados.idEmpleado
  4.                from empleados
  5.                where (empleados.idEmpleado=idempleado)
  6.                )
  7.        insert into supervisores values (0,idempleado);
  8.  

Me da el MySql Error Number 1064, pidiendo que revise el manual de sintaxis.


« Última modificación: 18 Octubre 2010, 00:39 am por KandiZickZad » En línea




d(n n)b
KandiZickZad

Desconectado Desconectado

Mensajes: 20



Ver Perfil WWW
Re: insertar valor1 en tabla1 si valor1 existe en tabla2
« Respuesta #1 en: 18 Octubre 2010, 00:39 am »

jaja, ya logré resolver el problema u.uU no habia puesto ni el 0 para el valor de la columna autoincrease, ni habia puesto el endif. así quedó el código

Código
  1. CREATE DEFINER=`root`@`localhost` PROCEDURE `insertaSupervisor`
  2. (in idempleado integer)
  3.        if exists
  4.                (select *
  5.                from empleados
  6.                where empleados.idEmpleado=idempleado
  7.                )
  8.        then
  9.                if not exists
  10.                        (select *
  11.                        from supervisores
  12.                        where supervisores.idEmpleado=idempleado
  13.                        )
  14.                then
  15.                        insert into supervisores values (0,idempleado);
  16.                end if;
  17.        end if;
  18.  


En línea




d(n n)b
Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: insertar valor1 en tabla1 si valor1 existe en tabla2 [SOLUCIONADO]
« Respuesta #2 en: 18 Octubre 2010, 19:26 pm »

Creo que sería mejor así, no entiendo del porque hacer 2 querys con lo mismo, solo que una si va a cumplirse la condición, usa mejor la clausula ELSE. Así,
Código
  1. CREATE DEFINER=`root`@`localhost` PROCEDURE `insertaSupervisor` (IN idempleado INTEGER)
  2. BEGIN
  3.    IF NOT EXISTS (SELECT * FROM empleados WHERE empleados.idEmpleado = idempleado) THEN
  4.        BEGIN
  5.            INSERT INTO supervisores VALUES (0,idempleado);
  6.            PRINT 'Empleado ingresado correctamente'
  7.        END
  8.    ELSE
  9.        PRINT 'El empleado ya existe'
  10. END
En línea

Te vendería mi talento por poder dormir tranquilo.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
No insertar si el valor existe
Bases de Datos
javirk 2 4,094 Último mensaje 16 Abril 2012, 01:53 am
por lord_Sirikon
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines