Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Insert Mysql con condicion

Estas en el tema de Insert Mysql con condicion en el foro de Bases de Datos General en Foros del Web. Hola a tod@s tengo una duda a cerca del INSERT de mysql, se puede utilizar con una condicion? por ejemplo podria hcer algo asi. I ...
  #1 (permalink)  
Antiguo 06/07/2009, 04:18
 
Fecha de Ingreso: diciembre-2005
Ubicación: Vigo
Mensajes: 135
Antigüedad: 19 años
Puntos: 3
Insert Mysql con condicion

Hola a tod@s tengo una duda a cerca del INSERT de mysql, se puede utilizar con una condicion?
por ejemplo podria hcer algo asi.
I
Código HTML:
NSERT INTO catalogo_promociones (`nombre`,`cod_promo`) values ('nombre','2345') WHERE nombre NOT IN (SELECT nombre FROM catalogo_promociones WHERE nombre ='pepito'))
__________________
AlfaMeta formacion
  #2 (permalink)  
Antiguo 06/07/2009, 05:22
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 1 mes
Puntos: 2658
Respuesta: Insert Mysql con condicion

WHERE como cláusula no pertenece al INSERT, por lo que es imposible que funcione.

Existen otros modos de realizar lo que deseas,pero mi sugerencia es que leas detenidamente el manual de referencia para no intentar cosas que por su propia definición no se pueden realizar con determinadas sentencias.
Luego, si planteas qué es lo que quieres lograr, podemos ver cómo obtener lo que deseas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 06/07/2009, 08:11
 
Fecha de Ingreso: diciembre-2005
Ubicación: Vigo
Mensajes: 135
Antigüedad: 19 años
Puntos: 3
Respuesta: Insert Mysql con condicion

Gracias por tu contestación, yo ya suponia que no se podia hacer asi por que mirando los manuales no encontraba la clausula WHERE en ningun INSERT.

Yo lo que quiero hacer es lo pasar una serie de datos para que los vaya insertando en la base de datos, pero que solo inserte los resultados donde el nombre no se repita, no se si soy claro, y queria saber si lo podia hacer con una instruccion Mysql.

Si me puedes ayudar.
__________________
AlfaMeta formacion
  #4 (permalink)  
Antiguo 06/07/2009, 08:22
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 1 mes
Puntos: 2658
Respuesta: Insert Mysql con condicion

Bueno, para eso existe la posibilidad de usar el resultado de un SELECT en un INSERT:
Código sql:
Ver original
  1. INSERT INTO tabla1(a, b, c, d, e)
  2. SELECT f, g, h, i, j
  3. FROM tabla2
  4. WHERE f = x;
Esto se usa cuando el conjunto de datos proviene de otra tabla.
En tu caso, el problema es que deberías determinar que el campo que no se repite es el de la PK. En ese caso se usa un
Código sql:
Ver original
  1. INSERT IGNORE INTO tabla...
Este modelo no insertará los datos si y sólo si estás intentando ingresar una PK duplicada, pero no generará una salida por el error de clave duplicada que eventualmente se produciría.
Para poder hacer una inserción con una comparación por campo no clave, te conviene hacerlo mediante una tabla temporal donde recojas los registros válidos antes de insertarlos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 06/07/2009, 08:22
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 10 meses
Puntos: 360
Respuesta: Insert Mysql con condicion

busca en google info sobre insert ignore o el insert on duplicate key update. Te puede servir para tu problema.

Un saludo
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #6 (permalink)  
Antiguo 06/07/2009, 08:42
 
Fecha de Ingreso: diciembre-2005
Ubicación: Vigo
Mensajes: 135
Antigüedad: 19 años
Puntos: 3
Respuesta: Insert Mysql con condicion

Gracias por buestra ayuda, aunque creo que voy a tener que hacerlo usando un poco de codigo PHP, gracias.
__________________
AlfaMeta formacion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:57.