LightDB23.4 支持普通表修改为list分区表

功能介绍

为了兼容Oracle数据库的功能,在LightDB23.4版本上支持修改普通表为List分区表。这个功能只在LightDB的Oracle兼容模式下生效。

使用示例

  1. 进入Oracle兼容模式的数据库
powershell 复制代码
lightdb@oracle_test=# show lightdb_dblevel_syntax_compatible_type ;
 lightdb_dblevel_syntax_compatible_type 
----------------------------------------
 Oracle
(1 row)

lightdb@oracle_test=# 
  1. 创建普通表,插入数据
powershell 复制代码
lightdb@oracle_test=# create table test_list_tab(id int, name varchar(20));
CREATE TABLE
lightdb@oracle_test=# 
lightdb@oracle_test=# insert into test_list_tab values(1,'lier');
alues(6,'chenjing');
insert into test_list_tab values(7,'sunya');
insert into test_list_tab values(0,'xika');
insert into test_list_tab values(-1,'zixingche');INSERT 0 1
lightdb@oracle_test=# insert into test_list_tab values(2,'zhangsan');
INSERT 0 1
lightdb@oracle_test=# insert into test_list_tab values(3,'wangwu');
INSERT 0 1
lightdb@oracle_test=# insert into test_list_tab values(4,'zhaosi');
INSERT 0 1
lightdb@oracle_test=# insert into test_list_tab values(5,'liuda');
INSERT 0 1
lightdb@oracle_test=# insert into test_list_tab values(6,'chenjing');
INSERT 0 1
lightdb@oracle_test=# insert into test_list_tab values(7,'sunya');
INSERT 0 1
lightdb@oracle_test=# insert into test_list_tab values(0,'xika');
INSERT 0 1
lightdb@oracle_test=# insert into test_list_tab values(-1,'zixingche');
INSERT 0 1
lightdb@oracle_test=# 
  1. 将普通表修改成list分区表
powershell 复制代码
lightdb@oracle_test=# ALTER TABLE test_list_tab MODIFY PARTITION BY LIST (id) (
lightdb@oracle_test(#    PARTITION even VALUES (2, 4, 6, 8),
lightdb@oracle_test(#    PARTITION odd VALUES (1, 3, 5, 7),
lightdb@oracle_test(#    PARTITION rest VALUES (DEFAULT));
ALTER TABLE
lightdb@oracle_test=# 
lightdb@oracle_test=# \d+ test_list_tab
                                Partitioned table "public.test_list_tab"
 Column |         Type          | Collation | Nullable | Default | Storage  | Stats target | Description 
--------+-----------------------+-----------+----------+---------+----------+--------------+-------------
 id     | integer               |           |          |         | plain    |              | 
 name   | character varying(20) |           |          |         | extended |              | 
Partition key: LIST (id)
Partitions: "test_list_tab$p$even" FOR VALUES IN (2, 4, 6, 8),
            "test_list_tab$p$odd" FOR VALUES IN (1, 3, 5, 7),
            "test_list_tab$p$rest" DEFAULT

lightdb@oracle_test=# 
  1. 查询各分区表中的数据
powershell 复制代码
lightdb@oracle_test=# select * from test_list_tab$p$even;
 id |   name   
----+----------
  2 | zhangsan
  4 | zhaosi
  6 | chenjing
(3 rows)

lightdb@oracle_test=# select * from test_list_tab$p$odd;
 id |  name  
----+--------
  1 | lier
  3 | wangwu
  5 | liuda
  7 | sunya
(4 rows)

lightdb@oracle_test=# select * from test_list_tab$p$rest;
 id |   name    
----+-----------
  0 | xika
 -1 | zixingche
(2 rows)

lightdb@oracle_test=# 
相关推荐
martian66515 分钟前
第六篇:事务与并发控制
数据库
x-cmd2 小时前
[250202] DocumentDB 开源发布:基于 PostgreSQL 的文档数据库新选择 | Jekyll 4.4.0 发布
数据库·postgresql·开源
是小崔啊7 小时前
事务03之MVCC机制
数据库·mysql·事务·
LUCIAZZZ11 小时前
简单的SQL语句的快速复习
java·数据库·sql
Elastic 中国社区官方博客13 小时前
使用真实 Elasticsearch 进行高级集成测试
大数据·数据库·elasticsearch·搜索引擎·全文检索·jenkins·集成测试
@_@哆啦A梦13 小时前
Redis 基础命令
java·数据库·redis
fajianchen13 小时前
MySQL 索引存储结构
数据库·mysql
想做富婆13 小时前
oracle: 多表查询之联合查询[交集intersect, 并集union,差集minus]
数据库·oracle·联合查询
xianwu54315 小时前
反向代理模块jmh
开发语言·网络·数据库·c++·mysql
Leven19952715 小时前
Flink (十三) :Table API 与 DataStream API 的转换 (一)
数据库·sql·flink