Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/07/2011, 02:44
Avatar de fekaa11
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.