¿Cuál es el número máximo de columnas para una clave principal de varias columnas (MySQL)? ¿Depende del tipo de datos de la columna o del motor?MySQL clave principal de multicolumna
Respuesta
Sí, depende de motor de almacenamiento.
-
The maximum number of columns per index is 16. The maximum key length is 1000 bytes. This can also be changed by changing the source and recompiling. For the case of a key longer than 250 bytes, a larger key block size than the default of 1024 bytes is used.
-
The InnoDB internal maximum key length is 3500 bytes, but MySQL itself restricts this to 3072 bytes. This limit applies to the length of the combined index key in a multi-column index.
Gracias. Gran respuesta. –
encontré esto:
alguien intentó crear una PK con 2 columnas y recibió este error:
"clave especificada es demasiado largo; longitud de clave máxima es de 1024 bytes" por lo que parece que el máximo son 1024 bytes, no importa el número de columnas, lo que realmente importa es el tipo de var y el espacio asignado.
he visto algunos ejemplos de esta manera:
create table OS_PROPERTYENTRY (entity_name VARCHAR(125) not null, entity_id BIGINT not null,
entity_key VARCHAR(255) not null date_val DATETIME, primary key (entity_name, entity_id, entity_key))
donde
125 * (3 bytes) + 255 * (3 bytes) + 1 * (8 bytes) = 1148 bytes. Por lo tanto, no es posible crear un PK.
echar un vistazo aquí, hablan de ello: https://jira.atlassian.com/browse/CONF-2783
- 1. Tamaño de clave principal/externa de MySQL?
- 2. Clave principal de dos columnas en MySQL
- 3. MySQL - usando String como clave principal
- 4. Restablecer la clave principal en mysql?
- 5. Mysql - Agregar auto_increment a la clave principal
- 6. MySQL - Usar clave externa como clave principal también
- 7. Clave principal MySQL UUID: ¿generada por PHP o por MySQL?
- 8. mysql LOAD DATA INFILE con autoincremento de la clave principal
- 9. Clave principal grande: 1+ mil millones de filas MySQL + InnoDB?
- 10. MySQL: Determinar la tabla de clave principal dinámicamente
- 11. Clave principal de múltiples columnas en MySQL 5
- 12. Vistas de MySQL en Navicat: cómo definir 'clave principal'?
- 13. Cambio de clave principal
- 14. Clasificación de clave principal
- 15. MySQL LOAD DATA INFILE - Cargando un archivo sin clave principal
- 16. MySQL - cómo usar VARCHAR como INCREMENTO AUTOMÁTICO Clave principal
- 17. SQL: establecer la columna existente como clave principal en MySQL
- 18. PHP MySQL Comprobar si una tabla tiene una clave principal
- 19. ¿La clave principal está indexada automáticamente en MySQL?
- 20. Cambio de clave principal de MySQL cuando existe contraints clave externa
- 21. MySql autoincrementando tecla principal alfanumérica?
- 22. ¿Obtener la clave principal de la tabla?
- 23. Tablas sin clave principal
- 24. Hibernar sin clave principal
- 25. Android: Clave principal GUID
- 26. Hibernate/JPA y PostgreSQL: ¿clave principal?
- 27. RestKit atributo de clave principal
- 28. ¿Se indexa automáticamente una clave principal?
- 29. Actualización de MySQL primaria clave
- 30. ¿Cómo crear una clave externa que también es una clave principal en MySQL?
su 16 en SQL Server 2008 .. no sé ABT MySQL –
[Este artículo es de 2006] (http : //www.xaprb.com/blog/2006/04/17/max-key-length-in-mysql/) y dice la longitud máxima para la clave principal es 1000 bytes. No estoy seguro si eso ha cambiado desde entonces. – Taryn
Creo que los límites son 1000 bytes para MyiSAM y 3072 para el motor InnoDB. –