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 doc says:
sql CREATE TABLE child1 ( CHECK (blah blah) ) INHERITS (parent);
Create your child tables thusly:
sql 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?