Ver Mensaje Individual
  #13 (permalink)  
Antiguo 10/06/2016, 16:49
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: On duplicate key update

Sigues sin entenderlo...

¿Sabes de qué estoy hablando cuando te digo "una sola clave compuesta"?
Una clave puede estar compuesta de una sola columna, o más de una. La forma de definirla está en relación directa con la forma de identificar un único registro entre todos los registros de la tabla.
En tu caso, la tabla USERS, al definirse como UNIQUE el par (token, email), hace que la combinación de un token dado, con un e-Mail determinado sólo puede registrarse una vez, pero cada token y cada eMail pueda aparecer N veces.

Supongamos que el token tuviese el valor "abcdefg", y el email fuese diferente en cada caso.
Esto sería válido en ese caso:

Código MySQL:
Ver original
  1. ID | TOKEN | EMAIL
  2. 1 | abdcefg | [email protected]
  3. 2 | abdcefg | [email protected]
  4. 3 | abdcefg | [email protected]
  5. 4 | abdcefg | [email protected]
  6. 5 | kjhjhyy | [email protected]
  7. 6 | kjhjhyy | [email protected]

Pero con esos cuatro registros no podrías hacer este insert:
Código MySQL:
Ver original
  1. INSERT INTO users (token,email) VALUES ('abdcefg', '[email protected]')
no podrías ingresarlo porque el par de valores ya existe en el indice UNIQUE.

Por favor, son temas de manual. Te conviene leer un poco de indices en BBDD antes de seguir. Evitarás dar vueltas sobre un asunto cuya solución ya te hemos dado.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)