我想知道如何将图像“bytea”插入到postgreSql数据库的表中?我已经在论坛上搜索了几个小时,并且看到相同的问题发布了数十次,但是却找不到一个答案。我所看到的只是如何将.jpeg插入到我不需要的旧列中。
这是数据库表:
create table category (
"id_category" SERIAL,
"category_name" TEXT,
"category_image" bytea,
constraint id_cat_pkey primary key ("id_category"))without oids;
当我添加新行时,它不起作用:
insert into category(category_name,category_image) values('tablette', lo_import('D:\image.jpg'));
最佳答案
insert into category(category_name,category_image) values('tablette', bytea('D:\image.jpg'));
如果列类型为bytea,则上述解决方案有效
insert into category(category_name,category_image) values('tablette', lo_import('D:\image.jpg'));
如果列类型为oid,即Blob,则上述解决方案有效
insert into category(category_name,category_image) values('tablette',decode('HexStringOfImage',hex));
上面的解码功能采用两个参数。第一个参数是Image的HexString,第二个参数默认为hex.Decode函数将hexString转换为字节并存储在postgres的bytea数据类型列中。