LightDB 22.1版本发布了
LightDb22.1-13.3版本正式发布了,此版本为集中式、分布式融合版,用户可选择分布式或集中式,EM和lightdb-x正式可独立部署。
下面介绍部分本版本的支持情况。详细可参见: Release Notes:
LightDB支持ROWNUM
为提高LightDB对Oracle的兼容性,降低用户迁移至LightDB的成本,LightDB22.1全面支持兼容Oracle ROWNUM。支持在SELECT、UPDATE、DELETE语句中使用ROWNUM,支持分区表、继承表中使用ROWNUM。
支持SELECT中使用ROWNUM
比如可通过ROWNUM限制返回的元组数。创建数据库实例后,设置LightDB语法兼容为Oracle模式,即可使用ROWNUM,否则会报错。
[postgres@slpc lightdb-x]$ ltsql
ltsql (13.3-22.1)
Type "help" for help.
postgres@postgres=
SET
postgres@postgres=
rownum | a | c
1 | 2 | 0
2 | 3 | 0
3 | 1 | 0
4 | 5 | 0
5 | 6 | 0
6 | 4 | 4
(6 rows)
postgres@postgres=
a | c
2 | 0
3 | 0
(2 rows)
postgres@postgres=
rn | a | c
1 | 2 | 0
2 | 3 | 0
(2 rows)
限制了返回的元组数量,此时语义上等同于LIMIT。
支持UPDATE/DELETE使用ROWNUM
可通过ROWNUM限制修改或者删除的数量。
postgres@postgres=
id | name
1 | c
1 | c
(2 rows)
postgres@postgres=
UPDATE 1
postgres@postgres=
id | name
1 | c
0 | c
(2 rows)
postgres@postgres=
UPDATE 2
postgres@postgres=
id | name
1 | c
2 | c
(2 rows)
postgres@postgres=
DELETE 1
详细语法可参考Oracle官网文档或LightDB官网
LightDB新增SQL语法
LightDB不但在持续提高对Oracle以及MySQL的兼容度,还在持续创新,充分理解客户的需求,挖掘客户的需求痛点,我们对此新增了UPDATE/DELETE支持ORDER BY / LIMIT语法。目前常见的数据库,比如Oracle,MySQL,Postgres只支持在SELECT语句中支持ORDER BY或LIMIT。对UPDATE/DELETE不支持ORDER BY的用法。通过对UPDATE/DELETE支持ORDER BY LIMIT语法,我们可以通过一条非常简单的SQL语句实现更新或删除表的某列数据排序后前几条的功能。
比如我们更新表tc的c列值为1,限制更新为按a列排序后的前3条。
postgres@postgres=
a | c
2 | 0
3 | 0
1 | 0
5 | 0
6 | 0
4 | 4
(6 rows)
postgres@postgres=
UPDATE 3
postgres@postgres=
a | c
1 | 1
2 | 1
3 | 1
5 | 0
6 | 0
4 | 4
(6 rows)
这样通过一条简单的SQL语句就实现了更新或删除表的某列数据排序后前几条的功能。
更多请登录LightDB官网进行查看。
|