ALTER TABLE...SPLIT PARTITION
ALTER TABLE...SPLIT PARTITION
از دستور فوق برای تقسیم یک پارتیشن به دو پارتیشن استفاده می شود و محتویات پارتیشن اول را در دو پارتیشن جدید منتقل می کند.این دستور فقط در جداول حاوی range partition و list partition قابل استفاده است (و نمی توان برای hash partiotion استفاده کرد).فرم نوشتاری دستور به دو صورت است:
فرم اول جدول دارای range partition را به دو پارتیشن تقسیم می کند:
ALTER TABLE table_name SPLIT PARTITION partition_name
AT (range_part_value)
INTO
(
PARTITION new_part1
[TABLESPACE tablespace_name],
PARTITION new_part2
[TABLESPACE tablespace_name]
);
فرم دوم جدول حاوی list partition را به دو پارتیشن تقسیم می کند:
ALTER TABLE table_name SPLIT PARTITION partition_name
VALUES (value[, value]...)
INTO
(
PARTITION new_part1
[TABLESPACE tablespace_name],
PARTITION new_part2
[TABLESPACE tablespace_name]
);
مثال یک:
جدول sales را با سه پارتیشن ذیل در نظر بگیرید:
CREATE TABLE sales
PARTITION europe VALUES('FRANCE', 'ITALY'),
PARTITION asia VALUES('INDIA', 'PAKISTAN'),
PARTITION americas VALUES('US', 'CANADA')
دستور زیر پارتیشن Americas را به دو پارتیشن us و Canada تقسیم می کند:
ALTER TABLE sales SPLIT PARTITION americas
VALUES ('US')
INTO (PARTITION us, PARTITION canada);
مثال دو:
VALUES LESS THAN('2012-Apr-01'),
VALUES LESS THAN('2012-Jul-01'),
VALUES LESS THAN('2012-Oct-01'),
VALUES LESS THAN('2013-Jan-01')
جدول از چهار پارتیشن زیر تشکیل شده است:
q1_2012, q2_2012, q3_2012, and q4_2012
دستور زیر q4_2012 را به دو پارتیشن q4_2012_p1 و q4_2012_p2 تقسیم می کند:
ALTER TABLE sales SPLIT PARTITION q4_2012
AT ('15-Nov-2012')
INTO
(
PARTITION q4_2012_p1,
PARTITION q4_2012_p2
);
توجه : اگر tablespace جدیدی برای پارتیشنها تعریف نشود از tablespace پیش فرض استفاده می گردد.
- ۰ نظر
- ۱۵ ارديبهشت ۹۷ ، ۱۹:۳۴
- ۶۷۸ نمایش