Ver Mensaje Individual
  #7 (permalink)  
Antiguo 30/09/2011, 17:49
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.322
Antigüedad: 12 años, 1 mes
Puntos: 2654
Respuesta: numeracion autoincrementada

No es que estés haciendo mal, al menos no exactamente. Es un problema más simple que eso.
Una PK no sólo es un identificador único, sino que además es lo que mantiene el orden físico de los registros en el disco (una PK genera un índice cluster y por definición y especificación, sólo puede existir un único indice cluster por tabla).
Como es obvio, no puedes ordenar físicamente un archivo de dos formas diferentes al mismo tiempo. ¿Podrías ordenar los libros una biblioteca de dos formas distintas al mismo tiempo?
No, por supuesto que no.

Lo que tu estás queriendo hacer es crear una clave alternativa, o clave candidata, pero no tiene ningún sentido crear dos claves de ese tipo (univocas), en la misma tabla si no es por un requerimiento específico del sistema.
Si tu tabla ya contiene una PK definida por otros campos, no debería requerir otra más. Si lo que quieres es mantener el orden cronológico de entrada de los registros, y la clave definida actualmente no te lo da, tienes dos soluciones:
1) Agregar este nuevo campo como un INT UNSIGNED y definirle un índice UNIQUE, para luego crear su numeración por un TRIGGER o por programación.
2) Quitarle a los dos campos ya definidos su condición de PK, declararlos como indice UNIQUE y crear el campo AUTO_INCREMENT como lo estabas haciendo.

Lo que no vas a poder hacer ni en MySQL, ni en ningún otro DBMS (Oracle, DB2, SQL Server, etc.) es crear dos claves primarias distintas para la misma tabla. Ningún DBMS lo permitirá por restricciones del paradigma E-R.

P.D.: SI no tienes tiempo de revisar estas cosas, mejor hazlas bien de entrada, porque un diseño mal definido y si normalizar implicará enormes cantidades de revisiones inútilmente, además de ineficiencia en las consultas que requerirán constantes correcciones y ajsutes.
Los modelos de datos (las bases de datos), deben estar bien construidas y terminadas de entrada. Modificarlas luego para corregir cosas genera catástrofes.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)