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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  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,741 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.723


<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

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
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 3,642 Ú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