若是想把整個文件或圖片存儲在數據表的一個字段內,該字段能夠選擇二進制類型,而後將文件按二進制存儲起來,文本文件也能夠存在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 |