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=# 
相关推荐
时差9531 小时前
【面试题】Hive 查询:如何查找用户连续三天登录的记录
大数据·数据库·hive·sql·面试·database
让学习成为一种生活方式1 小时前
R包下载太慢安装中止的解决策略-R语言003
java·数据库·r语言
秋意钟2 小时前
MySQL日期类型选择建议
数据库·mysql
Dxy12393102163 小时前
python下载pdf
数据库·python·pdf
桀桀桀桀桀桀3 小时前
数据库中的用户管理和权限管理
数据库·mysql
superman超哥4 小时前
04 深入 Oracle 并发世界:MVCC、锁、闩锁、事务隔离与并发性能优化的探索
数据库·oracle·性能优化·dba
用户8007165452004 小时前
HTAP数据库国产化改造技术可行性方案分析
数据库
engchina5 小时前
Neo4j 和 Python 初学者指南:如何使用可选关系匹配优化 Cypher 查询
数据库·python·neo4j
engchina5 小时前
使用 Cypher 查询语言在 Neo4j 中查找最短路径
数据库·neo4j
尘浮生5 小时前
Java项目实战II基于Spring Boot的光影视频平台(开发文档+数据库+源码)
java·开发语言·数据库·spring boot·后端·maven·intellij-idea