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

[SOLUCIONADO] Particionamiento de tablas

Estas en el tema de Particionamiento de tablas en el foro de Mysql en Foros del Web. Saludos.. Vengo con un problema de particionamiento de tablas. Les explico mi situación. Tengo una tabla con registros de 5 años los primeros 3 años ...
  #1 (permalink)  
Antiguo 30/12/2014, 11:51
Avatar de EduardoWallas  
Fecha de Ingreso: diciembre-2014
Ubicación: Jalisco
Mensajes: 6
Antigüedad: 9 años, 11 meses
Puntos: 0
Particionamiento de tablas

Saludos..

Vengo con un problema de particionamiento de tablas.
Les explico mi situación.

Tengo una tabla con registros de 5 años
los primeros 3 años deben de ir en una partición por año y los ultimos 2 dividido por meses y cuando se agregen registros nuevos caigan a una partición general para cuando se termine el mes crear una partición para ese mes y los registros se muevan.

Ahora lo que estoy intentando hacer es lo siguiente
Código MySQL:
Ver original
  1. ALTER TABLE VENTAS PARTITION BY RANGE( TO_DAYS(VEN_FECHA_HORA) ) PARTITIONS 5(
  2. PARTITION 2011 VALUES LESS THAN ( TO_DAYS("2012-01-01") ),
  3. PARTITION 2012 VALUES LESS THAN ( TO_DAYS("2013-01-01") ),
  4. PARTITION 2013 VALUES LESS THAN ( TO_DAYS("2014-01-01") ),
  5. PARTITION 201401 VALUES LESS THAN ( TO_DAYS("2014-02-01") ),
  6. PARTITION SINASIGNAR VALUES LESS THAN MAXVALUE
  7. );

Cabe mencionar que la tabla tiene una llave primaria compuesta con VEN_ID Y VEN_FECHA_HORA que son int autoincrement y datetime respectivamente

para mi lo importante es utilizar VEN_FECHA_HORA para hacer las particiones

La respuesta de esta ejecucion es:
A PRIMARY KEY must include all columns in the table's partitioning function

¿Me podrían indicar que estoy haciendo mal? y ¿como podría agregar posteriormente particiones para los nuevos meses?

Última edición por gnzsoloyo; 30/12/2014 a las 12:00

Etiquetas: fecha, meses, particion, particionar, range, 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 08:42.