5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PostgreSQLにバイナリデータをINSERTする手順

Posted at

今回やること

PostgresSQLのデータベースにjpgをデータ(バイナリ)を格納する。
PostgresSQLのバージョン10で検証。

格納先フォルダを作成

/var/lib/pgsql/10/data にDBファイル群があるのでディレクトリを作成。
作成する時のOSユーザはpostgresを想定。

cd /var/lib/pgsql/10/data
mkdir images

ファイルのアップロード

/var/lib/pgsql/10/data/images にファイルをアップロードしておく

今回はサンプルとして、image.jpgを配置しておく。

テーブル作成

bytea型のデータが入るテーブルを用意します。

create table sample
(
    sample_id   serial not null constraint pk_sample primary key,
    bytes       bytea  not null
);

データの挿入

PostgreSQLでバイナリ型を挿入する時は、pg_read_binary_file()でファイルをバイナリ形式にしなければいけない。

INSERT INTO sample(sample_id, bytes) 
    VALUES (1, pg_read_binary_file('images/image.jpg'));

/var/lib/pgsql/10/data にアクセスするためには、Superuser権限がないとダメなので注意が必要。

superuser権限の付与は以下で対応する。

ALTER ROLE sample_user WITH SUPERUSER;
5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?