Ver Mensaje Individual
  #2 (permalink)  
Antiguo 29/11/2015, 13:13
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: 17 años
Puntos: 2658
Respuesta: Usar campo auto increment

Cita:
Ahora bien si pongo nventa tambien como clave esta restriccion me desapareceria
Ok... ¿Y en qué contexto mágico desaparecería por si misma esa clave?

Una PK sólo puede "desaparecer" si la quietas manualmente y en forma explícita. NO puede "desaparecer".

Las reglas de MySQL dicen que sólo puede haber un único campo AI en una tabla, compuesto por un único campo, y si existe debe ser parte de la PK o declarado como tal.
Como tu tabla ya posee una PK, no te permitirá agregar ese AI a menos que lo integres a la PK, lo que sería una pésima idea.

En tu contexto, no tiene sentido ni utilidad agregar el AI, a menos que quites la PK actual y generes el AI declarándolo PK. Pero el problema en ese caso es que seguiría pudiéndose duplicar un registro.
La solución es simple: SI cada propiedad siempre tendrá esos campos, y tu NO eliminas esa PK, dejalo todo como está.
Si deseas poner el AI (solución por vagancia de correcto uso de las PK), deberás proteger la unicidad de los registros creando un indice UNIQUE con los mismos campos que hoy tienes como PK... lo que terminaría resultando en mantener dos claves unicas diferentes en la misma tabla... Algo completamente innecesario.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)