PostgreSQL Partitioning Quick Tip

Partitioning in PostgreSQL can be a little daunting at times. In fact, you should probably just use pg_partman and be done with it. However, if you’re trying to learn, can’t use pg_partman, or are a masochist you’ll probably be following the docs and thinking ‘seriously? i have to create indexes on each child? why don’t they copy the indexes of the parent? why isn’t this easier?’. Here’s a little tip to make things slightly easier:

Instead of creating your child tables like the docs say:

> CREATE TABLE child1 (
  CHECK (blah blah)
) INHERITS (parent);

Create your child tables thusly:

> CREATE TABLE child1 (
  LIKE parent INCLUDING ALL,
  CHECK (blah blah)
) INHERITS (parent);

and PostgeSQL will copy all your indexes, primary keys, etc from the parent to the child. Which is what you wanted, right?

Enjoy.