Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Error creacion tabla con dos PK y una de ellas FK

Estas en el tema de Error creacion tabla con dos PK y una de ellas FK en el foro de Mysql en Foros del Web. Intento crear esta tabla en mi BD usando PHPMyAdmin y me sale este error: Consulta: Código: create table periodo_abono( idPeriodoAbono int(11) NOT NULL auto_increment, precio ...
  #1 (permalink)  
Antiguo 22/05/2012, 15:32
 
Fecha de Ingreso: mayo-2012
Mensajes: 1
Antigüedad: 11 años, 11 meses
Puntos: 0
Error creacion tabla con dos PK y una de ellas FK

Intento crear esta tabla en mi BD usando PHPMyAdmin y me sale este error:


Consulta:

Código:
create table periodo_abono( 
idPeriodoAbono int(11) NOT NULL auto_increment, 
precio int(5) NOT NULL , 
f_inicio date NOT NULL,
f_fin date default NULL,
idAbono int(11) NOT NULL,
constraint periodo_abono_pkey primary key (idAbono,idPeriodoAbono), 
constraint periodo_abono_fkey foreign key (idAbono) References abono(idAbono) 
)ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci AUTO_INCREMENT=1;
Error:
Código:
#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key 
 
Y no se donde puede estar el error...
  #2 (permalink)  
Antiguo 22/05/2012, 20:29
Avatar de 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, 5 meses
Puntos: 2658
Respuesta: Error creacion tabla con dos PK y una de ellas FK

Al menos usa el Traductor de Google:
Cita:
Incorrect table definition; there can be only one auto column and it must be defined as a key
Lo que en buen romance significaría:
Cita:
Definición de tabla incorrecta; sólo puede haber una columna autonumérica y esta debe ser definida como KEY
No puedes usar una PK de dos campos cuando uno de ellos es auto_increment, y menos aún cuando la columna autoincremental aparece en segundo lugar en esa clave.

Código MySQL:
Ver original
  1. create table periodo_abono(
  2.     idPeriodoAbono int(11) NOT NULL auto_increment,
  3.     precio int(5) NOT NULL ,
  4.     f_inicio date NOT NULL,
  5.     f_fin date default NULL,
  6.     idAbono int(11) NOT NULL,
  7.     constraint periodo_abono_pkey primary key (idPeriodoAbono),
  8.     constraint periodo_abono_fkey foreign key (idAbono) References abono(idAbono)

Por otro lado, carece de sentido poner un AI dentro de una PK multicampo, porque su propia condición de AI le otorga unicidad, que es uno de los elementos que definen a una PK.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: php, tabla
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:43.