为什么H2数据库在我的值前附加前缀

时间:2019-04-19 16:35:04

标签: sql insert h2 h2db

我在H2数据库中有一个表。
该表中有两列,如下所示:

CREATE TABLE mytable (id bigserial NOT NULL,lffo_file text);

id | value --------------

我执行此查询:

 INSERT INTO mytable (value , id) VALUES ( '/resource/public/1555687199892.js','1555684557909')

之后,当我执行此查询时:

select * from my table

它告诉我:

id              |      value
-----------------------------------------
1555684557909   |  clob4: '/resource/public/1555687199892.js'

为什么H2会添加此前缀<< clob4:>>?

(我只是知道,clob是用于大型varchar的数据类型)

1 个答案:

答案 0 :(得分:0)

一段时间后

H2数据库自动将Text视为Clob数据类型
当您使用“文本”列创建表时,该表已更改为Clob

,然后:
当您插入文本值时,它将保留KVP格式的文本:
假设您在值列

中插入了“ Alex”和“ Beti”

因此它像下面这样持续存在:

value clob0 : 'Alex' clob1 : 'Beti'

正如您在kvp中看到的那样,密钥是'clobe'+计数器

所以我将文本类型更改为varchar(无大小),并且依赖于PostgreSQL文档,varchar和文本性能之间没有区别

所有这些都是我所看到的,如果有更好的答案,请分享一下,谢谢