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.