Another option that is often preferable is to remove the partition from
the partitioned table but retain access to it as a table in its own
- right:
+ right. This has two forms:
ALTER TABLE measurement DETACH PARTITION measurement_y2006m02;
+ALTER TABLE measurement DETACH PARTITION measurement_y2006m02 CONCURRENTLY;
- This allows further operations to be performed on the data before
+ These allow further operations to be performed on the data before
it is dropped. For example, this is often a useful time to back up
the data using
COPY,
pg_dump, or
similar tools. It might also be a useful time to aggregate data
into smaller formats, perform other data manipulations, or run
- reports.
+ reports. The first form of the command requires an
+ ACCESS EXCLUSIVE lock on the parent table.
+ Adding the CONCURRENTLY qualifier as in the second
+ form allows the detach operation to require only
+ SHARE UPDATE EXCLUSIVE lock on the parent table, but see
+ ALTER TABLE ... DETACH PARTITION
+ for details on the restrictions.
might be poor.)
-
-
- Some operations require a stronger lock when using declarative
- partitioning than when using table inheritance. For example,
- removing a partition from a partitioned table requires taking
- an ACCESS EXCLUSIVE lock on the parent table,
- whereas a SHARE UPDATE EXCLUSIVE lock is enough
- in the case of regular inheritance.
-
-