为什么 H2 数据库在我的值之前附加前缀
why H2 database append prefix before my value
我在 H2 数据库中有一个 table。
在此 table 中有如下 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是huge varchar的数据类型)
一段时间后
H2 数据库自动将 Text 视为 clob 数据类型
当你创建一个 table with Text 列时,它被更改为 clob
然后:
当您插入文本值时,它会保留像 KVP 格式的文本:
假设您在值列
中插入 'Alex' 然后 'Beti'
所以它像下面这样持续存在:
value
clob0 : 'Alex'
clob1 : 'Beti'
如您在 kvp 中所见,密钥是 'clobe' + 计数器
所以我将文本类型更改为 varchar(没有大小)并且取决于 postgresql 文档,varchar 和文本性能之间没有区别
以上都是我看到的,如果有更好的答案请分享,谢谢
我在 H2 数据库中有一个 table。
在此 table 中有如下 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是huge varchar的数据类型)
一段时间后
H2 数据库自动将 Text 视为 clob 数据类型
当你创建一个 table with Text 列时,它被更改为 clob
然后:
当您插入文本值时,它会保留像 KVP 格式的文本:
假设您在值列
所以它像下面这样持续存在:
value
clob0 : 'Alex'
clob1 : 'Beti'
如您在 kvp 中所见,密钥是 'clobe' + 计数器
所以我将文本类型更改为 varchar(没有大小)并且取决于 postgresql 文档,varchar 和文本性能之间没有区别
以上都是我看到的,如果有更好的答案请分享,谢谢