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=# 
相关推荐
Wyc724096 分钟前
Maven
java·数据库·maven
程序猿小D9 分钟前
[附源码+数据库+毕业论文]基于Spring+MyBatis+MySQL+Maven+jsp实现的电影小说网站管理系统,推荐!
java·数据库·mysql·spring·毕业设计·ssm框架·电影小说网站
羊小猪~~14 分钟前
数据库学习笔记(十七)--触发器的使用
数据库·人工智能·后端·sql·深度学习·mysql·考研
背太阳的牧羊人1 小时前
Neo4j 的向量搜索(Neo4jVector)和常见的向量数据库(比如 Milvus、Qdrant)之间的区别与联系
数据库·neo4j·milvus
liulun1 小时前
在浏览器中使用SQLite(官方sqlite3.wasm)
数据库·sqlite·wasm
IT项目管理2 小时前
达梦数据库DMHS介绍及安装部署
linux·数据库
你都会上树?2 小时前
MySQL MVCC 详解
数据库·mysql
大春儿的试验田3 小时前
高并发收藏功能设计:Redis异步同步与定时补偿机制详解
java·数据库·redis·学习·缓存
Ein hübscher Kerl.3 小时前
虚拟机上安装 MariaDB 及依赖包
数据库·mariadb
醇醛酸醚酮酯4 小时前
Qt项目锻炼——TODO清单(二)
开发语言·数据库·qt