Exchanging a Partition of a Reference-Partitioned Table

You can exchange partitions in a reference-partitioned table, but you must ensure that the data that you reference is available in the respective partition in the parent table.

Example 4-28 shows a partition exchange load scenario for the range-partitioned orders table, and the reference partitioned order_items table. The data in the order_items_dec_2006 table only contains order item data for orders with an order_date in December 2006.

You must use the UPDATE GLOBAL INDEXES or UPDATE INDEXES on the exchange partition of the parent table in order for the primary key index to remain usable. Note also that you must create or enable the foreign key constraint on the order_items_dec_2006 table in order for the partition exchange on the reference-partitioned table to succeed.

Example 4-28 Exchanging a partition for a reference-partitioned table

ALTER TABLE orders
  EXCHANGE PARTITION p_2006_dec
  WITH TABLE orders_dec_2006
  UPDATE GLOBAL INDEXES;

ALTER TABLE order_items_dec_2006
  ADD CONSTRAINT order_items_dec_2006_fk
  FOREIGN KEY (order_id)
  REFERENCES orders(order_id) ;

ALTER TABLE order_items
  EXCHANGE PARTITION p_2006_dec
  WITH TABLE order_items_dec_2006;