Foros del Web » Programando para Internet » PHP »

Duda con ON DUPLICATE KEY UPDATE

Estas en el tema de Duda con ON DUPLICATE KEY UPDATE en el foro de PHP en Foros del Web. Hola, estoy trabajando en una web la cual consta de una base de datos, con una tabla llamada datos conformada de la siguiente manera: Cita: ...
  #1 (permalink)  
Antiguo 07/07/2011, 02:44
Avatar de fekaa11  
Fecha de Ingreso: abril-2011
Ubicación: Córdoba / Argentina
Mensajes: 115
Antigüedad: 13 años, 6 meses
Puntos: 34
Busqueda Duda con ON DUPLICATE KEY UPDATE

Hola, estoy trabajando en una web la cual consta de una base de datos, con una tabla llamada datos conformada de la siguiente manera:

Cita:
| id | alumno_id | grupo_id | objetivo
1 | 2 | 4 | F
Lo que necesito especificamente es poder hacer un insert si los datos no existen, caso contrario, hacer un update.

Los datos sobre los cuales pongo esta condicion son sobre alumno_id y grupo_id.

Entonces lo que hice fue hacer la siguiente consulta:

Código MySQL:
Ver original
  1. INSERT INTO datos (alumno_id,grupo_id,objetivo) VALUES (2,4,D) ON DUPLICATE KEY UPDATE objetivo='X'

Bien, lo que intente hacer es que si el campo alumno_id y grupo_id coincidían con los de mi consulta, entonces actualizar unicamente el objetivo. Pero resulta que haciendo pruebas, hice esto:

Código MySQL:
Ver original
  1. INSERT INTO datos (alumno_id,grupo_id,objetivo) VALUES (2,6,D) ON DUPLICATE KEY UPDATE objetivo='X'

En ese caso lo que pasa es que no me inserta un nuevo registro, si no que me actualiza el ya existente. Esto supongo que sucede porque la condición de duplicado unicamente toma el primer campo (alumno_id) mientras que yo necesito que me tome los dos primeros (alumno_id,grupo_id). Es esto posible ?

PD: El campo alumno_id está marcado como único (UNIQUE) mientras que el de grupo_id también (pensé que iba a funcionar).

Saludos y gracias!!
__________________
Pedir perdón es de hombres inteligentes. Perdonar es de sabios.
  #2 (permalink)  
Antiguo 08/07/2011, 00:31
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 2 meses
Puntos: 331
Respuesta: Duda con ON DUPLICATE KEY UPDATE

Tienes que crear una clave primaria compuesta de alumno_id y grupo_id, no puedes usar claves de un sólo campo. De lo contrario, al encontrar alumno_id ya lo considera duplicado y hace el update. Comprueba la estructura de la tabla. Salu2
__________________
Fere libenter homines, id quod volunt, credunt.

Etiquetas: mysql
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 22:31.