若是想把整个文件或图片存储在数据表的一个字段内,该字段能够选择二进制类型,而后将文件按二进制存储起来,文本文件也能够存在text字段内。java
示例以下:sql
二进制类型bytea的操做(在最大值内,有内存限制)函数
一、 建立表post
Create table byteatable(id int,obj bytea);
二、 将文件放到coordinator目录下/mnt/postgresql/coordspa
经过pg_read_binary_file()函数,插入一张图片- 目录:/mnt/postgresql/coord/1.jpgpostgresql
postgresql =# Insert into byteatablevalues(256,pg_read_binary_file('1.jpg')); INSERT 0 1 postgresql =# Insert into byteatablevalues(256,pg_read_binary_file('weibo.txt')); INSERT 0 1
三、 也能够调用pg_read _file()将一个文本文件存储在一个text字段内blog
postgresql=#ALTER TABLE byteatable ADD COLUMN body text; ALTER TABLE postgresql=#Insert into byteatable values(256,pg_read_binary_file('weibo.txt'), pg_read_file('weibo.txt')); INSERT 0 1 postgresql =# select body from byteatable whereid='256';
注意:函数pg_read_binary_file()和pg_read_file()中的路径必须是相对路径,默认路径是coordinator目录下,而且必须在coordinator目录下或者coordinator目录的子目录下。图片
Nameip |
Return Type内存 |
Description |
pg_read_file(filename text [, offset bigint, length bigint]) |
text |
Return the contents of a text file |
pg_read_binary_file(filename text [, offset bigint, length bigint]) |
bytea |
Return the contents of a file |