LightDB23.4 支持双引号+字段名大写兼容oracle数据库

背景介绍

由于Oracle数据库默认是将列名以大写的形式存储的,LightDB数据库默认以小写的形式存储列名,为了兼容Oracle数据库的SQL语句,LightDB23.4版本支持双引号+字段名大写来操作以小写形式存储的列名。这个功能仅在Oracle兼容模式下生效,并且支持DML操作。

使用示例

  1. 建表,字段名id是小写的
powershell 复制代码
lightdb@oracle_test=# create table t1(id int);
CREATE TABLE
lightdb@oracle_test=# \d+ t1
                                    Table "public.t1"
 Column |  Type   | Collation | Nullable | Default | Storage | Stats target | Description 
--------+---------+-----------+----------+---------+---------+--------------+-------------
 id     | integer |           |          |         | plain   |              | 
Access method: heap

lightdb@oracle_test=# 
  1. 插入数据,以"ID"的方式插入成功
powershell 复制代码
lightdb@oracle_test=# insert into t1("ID") values(10),(20),(30);
INSERT 0 3
lightdb@oracle_test=# 
lightdb@oracle_test=# select * from t1;
 id 
----
 10
 20
 30
(3 rows)

lightdb@oracle_test=# 
  1. 查找数据,以"ID"查找成功
powershell 复制代码
lightdb@oracle_test=# select "ID" from t1;
 ID 
----
 10
 20
 30
(3 rows)

lightdb@oracle_test=# 
  1. 更新数据
powershell 复制代码
lightdb@oracle_test=# update t1 set "ID"=25 where id = 20;
UPDATE 1
lightdb@oracle_test=# select "ID" from t1;
 ID 
----
 10
 30
 25
(3 rows)

lightdb@oracle_test=# 
  1. 删除数据
powershell 复制代码
lightdb@oracle_test=# delete from t1 where "ID" = 25;
DELETE 1
lightdb@oracle_test=# select "ID" from t1;
 ID 
----
 10
 30
(2 rows)

lightdb@oracle_test=# 
相关推荐
LucidX5 分钟前
MySQL主从复制与读写分离
数据库·mysql
默默提升实验室14 分钟前
Navicat Oracle数据库连接失败,报错:Oracle library is not loaded
oracle
羑悻的小杀马特15 分钟前
Redis之Set:从无序唯一到智能存储,解锁用户画像/社交/统计全场景应用
数据库·redis·set
San3016 分钟前
从 Mobile First 到 AI First:用 Python 和大模型让数据库“开口说话”
数据库·python·sqlite
doris61021 分钟前
2025年零门槛设备管理系统测评
数据库
小时候没少挨打26 分钟前
从0到1安装NVIDIA驱动(NVSwitch+Driver+IB网络驱动)
运维·服务器·数据库
卿雪27 分钟前
MySQL【存储引擎】:InnoDB、MyISAM、Memory...
java·数据库·python·sql·mysql·golang
即随本心0.o30 分钟前
大模型springai,Rag,redis-stack向量数据库存储
java·数据库·redis
晴栀ay32 分钟前
AI TO SQL:AIGC时代数据库操作的革命性变革
数据库·llm·aigc
Hello.Reader42 分钟前
Flink SQL 中的 SELECT DISTINCT批流一体下的去重与状态管理
数据库·sql·flink