1

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

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 的数据类型)

4

1 回答 1

1

过了一会儿

H2 数据库自动将 Text 视为 clob 数据类型
,当您创建具有 Text 列的表时,它已更改为 clob

然后:
当您插入文本值时,它会保留类似 KVP 格式的文本:
假设您在值列中插入了“Alex”,然后插入了“Beti”

所以它会像下面这样持续存在:

value clob0 : 'Alex' clob1 : 'Beti'

正如你在 kvp 中看到的,关键是 'clobe' + counter

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

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

于 2019-04-20T05:57:35.097 回答