前提・実現したいこと
node-postgresモジュールを使ってnode.jsからpostgreSQLの操作をしています。
データをインサートする際にprepare statementを使ってバルクインサートをしたいのですが、調べてやり方が分からなかったため、ご存知の方がいたら教えていただけると助かります。
以下のようなソースコードで実行をしています。
node
1const text = 'INSERT INTO users(name, email) VALUES($1, $2)'; 2const values = [['tanaka', 'test@example.com'],['suzuki', 'suzuki@example.com']]; 3 4await psql_client.query(text,[values]);
上記コードを実行すると以下のようなエラーメッセージが出力されます
エラーメッセージ error: bind message supplies 1 parameters, but prepared statement "" requires 2
同じような操作をMySQLではできるので、postgreSQLでもできないかと考えています。
MySQLの場合は以下のようなコードになります。
使用しているモジュールはmysql2です。
node
1const query = `INSERT INTO users VALUES ?`; 2const prepare_statement_array = [['tanaka', 'test@example.com'],['suzuki', 'suzuki@example.com']]); 3 4await connection.query(query,[prepare_statement_array];
こちらではエラーが発生せずにバルクインサートが可能でした
補足情報
usersテーブルの定義
列 | 型 | 照合順序 | null値を許容 | デフォルト |
---|---|---|---|---|
name | character varying(10) | |||
character varying(50) |
以下のサイトを調べましたが、やり方を見つけることができませんでした。
https://node-postgres.com/
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/30 02:39