Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/12/2014, 11:51
Avatar de EduardoWallas
EduardoWallas
 
Fecha de Ingreso: diciembre-2014
Ubicación: Jalisco
Mensajes: 6
Antigüedad: 9 años, 4 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