LightDB 22.4 新特性之相容Oracle線上轉換普通表為分割槽表

哎呀我的天吶發表於2022-12-27

Oracle 11G可以使用線上重定義進行非分割槽錶轉換為分割槽表(Online Redefinition),在Oracle 12C的新特性中,可線上將非分割槽錶轉換為分割槽表,同樣,LightDB實現了此特性:

建立測試表emp2,並且在emp2上建立索引

lightdb@test=# create table emp2 as select * from emp;
CREATE TABLE
lightdb@test=# create index i_emp2_name on emp2(ename);
CREATE INDEX
lightdb@test=# create index i_emp2_empno on emp2(empno);
CREATE INDEX

測試語句執行語句如下:

lightdb@test=# alter table emp2 modify
lightdb@test-#       partition by range (HIREDATE)
lightdb@test-# (
lightdb@test(#  partition part_1980 values less than (to_date('1980','yyyy')),
lightdb@test(#  partition part_1981 values less than (to_date('1981','yyyy')),
lightdb@test(#  partition part_1982 values less than (to_date('1982','yyyy')),
lightdb@test(#  partition part_1983 values less than (to_date('1983','yyyy')),
lightdb@test(#  partition part_1984 values less than (to_date('1984','yyyy')),
lightdb@test(#  partition part_1985 values less than (to_date('1985','yyyy')),
lightdb@test(#  partition part_1986 values less than (to_date('1986','yyyy')),
lightdb@test(#  partition part_1987 values less than (to_date('1987','yyyy')),
lightdb@test(#  partition part_1988 values less than (to_date('1988','yyyy'))
lightdb@test(# ) online
lightdb@test-#    update indexes
lightdb@test-#   ( i_emp2_name GLOBAL,
lightdb@test(#     i_emp2_empno local
lightdb@test(#   );
ALTER TABLE

然後我們檢視轉換後的表DDL語句

lightdb@test=# \d+ emp2
                                 Partitioned table "public.emp2"
  Column  |     Type      | Collation | Nullable | Default | Storage | Stats target | Description 
----------+---------------+-----------+----------+---------+---------+--------------+-------------
 empno    | numeric(4,0)  |           |          |         | main    |              | 
 ename    | varchar2(20)  |           |          |         | plain   |              | 
 job      | varchar2(9)   |           |          |         | plain   |              | 
 mgr      | numeric(4,0)  |           |          |         | main    |              | 
 hiredate | date          |           |          |         | plain   |              | 
 sal      | numeric(7,2)  |           |          |         | main    |              | 
 comm     | numeric(7,2)  |           |          |         | main    |              | 
 deptno   | numeric(2,0)  |           |          |         | main    |              | 
 dname    | varchar2(100) |           |          |         | plain   |              | 
Partition key: RANGE (hiredate)
Indexes:
    "i_emp2_empno" btree (empno)
    "i_emp2_name" btree (ename)
Partitions: part_1980 FOR VALUES FROM (MINVALUE) TO ('1980-01-01'),
            part_1981 FOR VALUES FROM ('1980-01-01') TO ('1981-01-01'),
            part_1982 FOR VALUES FROM ('1981-01-01') TO ('1982-01-01'),
            part_1983 FOR VALUES FROM ('1982-01-01') TO ('1983-01-01'),
            part_1984 FOR VALUES FROM ('1983-01-01') TO ('1984-01-01'),
            part_1985 FOR VALUES FROM ('1984-01-01') TO ('1985-01-01'),
            part_1986 FOR VALUES FROM ('1985-01-01') TO ('1986-01-01'),
            part_1987 FOR VALUES FROM ('1986-01-01') TO ('1987-01-01'),
            part_1988 FOR VALUES FROM ('1987-01-01') TO ('1988-01-01')




來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29990276/viewspace-2929688/,如需轉載,請註明出處,否則將追究法律責任。

相關文章