mysql - Specified key was too long: max key lenth is 3072 bytes -


i need this, have relation tables instantiated when im going create relationship table sends me "error: 1071 specified key long: max key lenth 3072 bytes"

my code until now:

create table tablahechos( id_almacenf varchar(255) not null, id_productof varchar(255) not null, id_categoriaf varchar(255) not null, id_transaccionf varchar(255) not null, id_tipo_serviciof varchar(255) not null, id_mensajerof varchar(255) not null, id_clientef varchar(255) not null, id_tiempo_fecha_orden varchar(255) not null, id_tiempo_fecha_reserva_entrada varchar(255) not null, id_tiempo_fecha_reserva_salida varchar(255) not null, id_tiempo_fecha_inventario_entrada varchar(255) not null, id_tiempo_fecha_inventario_salida varchar(255) not null, id_tiempo_fecha_envio varchar(255) not null, id_tiempo_fecha_facturacion varchar(25) not null, id_tiempo_fecha_cancelada varchar(255) not null, para_regalo varchar(45) not null, monto_unitario varchar(255) not null, monto_total varchar(45) not null, cantidad varchar(255) not null, primary key (id_almacenf, id_productof, id_categoriaf, id_transaccionf,  id_tipo_serviciof, id_mensajerof, id_clientef, id_tiempo_fecha_orden, id_tiempo_fecha_reserva_entrada, id_tiempo_fecha_reserva_salida, id_tiempo_fecha_inventario_entrada, id_tiempo_fecha_inventario_salida, id_tiempo_fecha_envio, id_tiempo_fecha_facturacion, id_tiempo_fecha_cancelada), constraint fk1   foreign key (id_almacenf)   references almacendim (id_almacen), constraint fk2   foreign key (id_productof)   references productodim (id_producto), constraint fk3   foreign key (id_categoriaf)   references categoriadim (id_categoria), constraint fk4   foreign key (id_transaccionf)   references transacciondim (id_transaccion), constraint fk5   foreign key (id_mensajerof)   references mensajerodim (id_mensajero), constraint fk6   foreign key (id_clientef)   references clientedim (id_cliente), constraint fk7   foreign key (id_tiempo_fecha_orden)     references tablahechos (id_tiempo_fecha_orden), constraint fk8   foreign key (id_tiempo_fecha_reserva_entrada)   references tablahechos (id_tiempo_fecha_reserva_entrada), constraint fk9    foreign key (id_tiempo_fecha_reserva_salida)   references tablahechos (id_tiempo_fecha_reserva_salida), constraint fk10   foreign key (id_tiempo_fecha_inventario_entrada)   references tablahechos (id_tiempo_fecha_inventario_entrada), constraint fk11    foreign key (id_tiempo_fecha_inventario_salida)   references tablahechos (id_tiempo_fecha_inventario_salida), constraint fk12   foreign key (id_tiempo_fecha_envio)     references tablahechos (id_tiempo_fecha_envio), constraint fk13   foreign key (id_tiempo_fecha_facturacion)   references tablahechos (id_tiempo_fecha_facturacion), constraint fk14   foreign key (id_tiempo_fecha_cancelada)    references tablahechos (id_tiempo_fecha_cancelada) ) engine=innodb default charset=latin1; 

i change charset latin1 , nothing happens, know primary key long must way. should do?

fortunately, there maximum key length, because primary key way long.

i suggest adding auto incremented primary key table:

create table tablahechos (     id_hechos int not null auto_increment primary key,     id_almacenf varchar(255) not null,     . . . 

what give you? well, simplified primary key helps in several ways:

  • it makes much easier find single row in table.
  • it simplifies foreign key references.
  • it provides mechanism of determining order of row insertion.

if want build key on columns, can shorten length of columns 32. "id" column really need 255 characters in length? if so, should replace them numeric ids in tables well. in fact, should using integer ids these columns, joins additional information them.


Comments

Popular posts from this blog

google chrome - Developer tools - How to inspect the elements which are added momentarily (by JQuery)? -

angularjs - Showing an empty as first option in select tag -

php - Cloud9 cloud IDE and CakePHP -