java - CrateDB 中的驼峰式列名崩溃与 JDBC

标签 java sql database jdbc crate

CrateDB 是否允许对象列使用大写或驼峰式大小写属性名称?我有一个这样的表:

create table objecttest(
 age integer,
 name string,
 attrs object
);

使用插入语句:

insert into objecttest (age,name,attrs) values (30,'harry',{address = '123  street', city = 'city', IPaddress = '10.0.0.1'});

...崩溃导致:

cr> select * from objecttest;
+-----+---------------------------------------------------------------------+--------+
| age | attrs                                                               | name   |
+-----+---------------------------------------------------------------------+--------+
|  30 | {"address": "123  street", "city": "city", "ipaddress": "10.0.0.1"} | harry  |
+-----+---------------------------------------------------------------------+--------+
SELECT 1 row in set (0.005 sec)

...在 CrateDB 的 JDBC 驱动程序中导致:

cr> select * from objecttest;
+-----+---------------------------------------------------------------------+-------+
| age | attrs                                                               | name  |
+-----+---------------------------------------------------------------------+-------+
|  30 | {"address": "123  street", "city": "city", "ipaddress": "10.0.0.1"} | harry |
|  30 | {"IPaddress": "10.0.0.1", "address": "123  street", "city": "city"} | harry |
+-----+---------------------------------------------------------------------+-------+
SELECT 2 rows in set (0.004 sec)

IP 地址现在的拼写有所不同。这是 crate-jdbc 中的错误吗?

最佳答案

如果没有引号,CrateDB 会将所有列名称视为不区分大小写(小写),因此任何列都应加引号以保留大小写。另一方面,CrateDB 的 JDBC 驱动程序将自动引用列名,这意味着在那里执行的插入语句将具有代码中写入的大小写。崩溃/管理 UI/...发出时将使用保留大小写:

insert into objecttest (age,name,attrs) values (30,'harry',{address = '123  street', city = 'city', "IPaddress" = '10.0.0.1'});

您将获得与使用 crate-jdbc 插入相同的结果。

有关结构的更多信息 here .

干杯!

关于java - CrateDB 中的驼峰式列名崩溃与 JDBC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41141517/

相关文章:

mysql - 如何使用 bigdump.php 在我的本地 wamp 服务器上上传大型 sql 数据库

java - 在 Opencv 3.1 Java 中操作单个像素时如何防止或处理字节溢出和字节下溢

java - HATEOAS 对嵌入资源进行排序/排序

mysql - 在 SQL 查询中同时使用 "update"和 "join"来增加数据库值

sql - T-SQL View 在一次检索中检索两个查找

python 和pymssql

sql - 复合主键 : Finding one attribute using another

java - 需要帮助在 tomcat 中调试 SSL 握手

java - 删除此 token (其他)

database - Cloudant:此排序不存在索引,请尝试按排序字段建立索引