node.js PostgreSQLにトランザクションを持たせてクエリを実行する
- 作成日 2021.07.03
- node.js PostgreSQL
- node.js
node.jsのライブラリ「pg」でPostgreSQLにトランザクションを持たせてクエリを実行するサンプルコードを記述してます。nodeのバージョンは14.15.1となります。
環境
- OS Ubuntu 20.10
- node V14.15.1
- npm 6.14.9
- PostgreSQL 13.1
pgインストール
pgを使用して、接続するので、npmでインストールしておきます。
npm i pg
トランザクション実行
事前に「sample」データベースの「numbers」テーブルを作成しておきます。
create table numbers (
id integer NOT NULL,
name varchar(10),
PRIMARY KEY (id)
);
以下は、「BEGIN ~ COMMIT」でトランザクションを作成してクエリを実行するサンプルコードとなります。
const { Client } = require('pg')
const pg = new Client({
user: 'mebee',
host: '0.0.0.0',
database: 'sample',
password: 'password',
port: 5432,
})
const sample = async () => {
try {
await pg.connect()
console.log('接続完了')
await pg.query("BEGIN")
await pg.query("insert into numbers values ($1, $2)", [1, 'mebee1'])
await pg.query("insert into numbers values ($1, $2)", [2, 'mebee2'])
await pg.query("insert into numbers values ($1, $2)", [3, 'mebee3'])
await pg.query("insert into numbers values ($1, $2)", [4, 'mebee4'])
await pg.query("insert into numbers values ($1, $2)", [5, 'mebee5'])
await pg.query("COMMIT")
const results = await pg.query("select * from numbers")
console.table(results.rows)
}
catch (e) {
console.log(e)
}
finally {
await pg.end()
console.log('終了')
}
}
sample()
実行結果
接続完了
┌─────────┬────┬──────────┐
│ (index) │ id │ name │
├─────────┼────┼──────────┤
│ 0 │ 1 │ 'mebee1' │
│ 1 │ 2 │ 'mebee2' │
│ 2 │ 3 │ 'mebee3' │
│ 3 │ 4 │ 'mebee4' │
│ 4 │ 5 │ 'mebee5' │
└─────────┴────┴──────────┘
終了
-
前の記事
php 配列をマージできる「array_merge」と「+」演算子のパフォーマンスを計測する 2021.07.03
-
次の記事
Ruby 数値のインクリメントを行う 2021.07.03
コメントを書く