sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Por qué no puedo crear una tabla de partición?

El "particionamiento de tablas declarativas", es decir, el particionamiento como característica de primera clase del DBMS con su propia sintaxis, era agregado en PostgreSQL 10 .

En versiones anteriores, puede lograr el mismo efecto con un poco más de esfuerzo utilizando la "herencia de tablas". Hay una página en el manual que describe cómo hacer esto manualmente , resumido como:

  1. Cree la tabla "maestra", de la cual heredarán todas las particiones.
  2. Cree varias tablas "secundarias" que hereden de la tabla maestra.
  3. Agregue restricciones de tabla a las tablas de partición para definir los valores clave permitidos en cada partición.
  4. Para cada partición, cree un índice en la(s) columna(s) clave, así como cualquier otro índice que desee.
  5. Opcionalmente, defina un activador o una regla para redirigir los datos insertados en la tabla maestra a la partición adecuada.
  6. Asegúrese de que el parámetro de configuración constrict_exclusion no esté deshabilitado en postgresql.conf. Si es así, las consultas no se optimizarán como se desea.

Para hacerlo más fácil, si no puede actualizar a la versión 10, puede usar una extensión como pg_partman que le brinda funciones adicionales para configurar y administrar conjuntos de particiones.