Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

■ はじめに * 開発環境設定やテストデータ作成の際に いちいち作ったりするのが面倒なので、 ファイルにして残しておけば、自分だけじゃなく 別の開発メンバーにも役立つので ファイルからSQL文を一括で実行する方法を調べてみた。 補足:pdql コマンド 以下の関連記事を参照のこと https://dk521123.hatenablog.com/entry/2020/01/10/224818 ■ ファイルからSQL文を一括で実行するには * psqlコマンドを利用する 構文 括弧()はオプション psql -f 【実行したいSQL文が書かれているファイル】 -U 【Postgreユーザ名】 (【DB名】)(-h 【ホスト名】) Password: [【Postgreユーザ名】のパスワードを入力する] ■ サンプル 例1:一括で実行したいSQL文 initDb.sql DROP DATABAS
こんにちは!エンジニアのカーキです。 今日はBashとPSQLを使ってSQLを実行した時にハマったエピソードについて紹介したいと思います。 なにでハマったのか? 自分が書いたBashのスクリプトでpsqlを使っていくつかの簡単なSQL (主にINSERT, UPDATE, DELETE)を実行しようとした時にスクリプトが成功してもデータベースには期待していた変更がありませんでした。 実行していたSQLは今まで成功していたSQLだったので正しいと思い込んでスクリプトの動作だけで確認してたのですが、実はpermission 関係でSQLが失敗していたようです。ただ、Bashスクリプトのエラー時の設定とpsqlの実行方法によってSQL上のエラーに気付かず、スクリプトが最後まで走って、成功したように見えたいただけでした。 エラーに気付かなかった要因とその解決方法 要因 1. Bashはデフォルトで
これは PostgreSQL Advent Calendar 2018 9日目の記事です。 みなさん、PostgreSQLマニュアルを読んでますか? PostgreSQLマニュアルは新聞と同じく小学生の時に読み終わってはいけません。更新され続けていますので、読み続ける必要があります。 psqlの機能もまた更新され続けています。 更新というだけでなく気づくとプログラミング出来る環境に変わりつつあります。 これまでシェルスクリプトから必要な時にpsqlを呼び出し結果を受け取る処理を書いたことがある人もいると思いますが、psqlの機能向上によりpsql内で処理出来るようになってきています。 ということで、psqlのスクリプトについて書いていきます。 今回は基本的に psql -f "psqlスクリプト"やpsqlにログインしている状態で\i "psqlスクリプト"での実行を前提にしています。 一
(「表あ転置」は、テーブルの未定義してあり、レコードは0件)) しかし、このSQL文は残念ながら思惑通りに動作しない。 FOR文内で、 表あの各列名 はループごとに 列ア → 列イ → 列ウ と変化して解釈されるが、 ※を付した行では 表あの各列名 はそもそも解釈されない 。 SELECT 表あの各列名 FROM 表あ は、表あから「表あの各列名」という名前の列を探してこようとしてしまい、 「『表あの各列名』という名の列は、表あには存在しない」という旨のエラーを返してしまう。 このような問題は一般的に 表名や列名(や、データベース名もかな?)に変数を与えたときに発生する 。 ここでいう「変数を与える」というのを正確な表現で言うと、 動的に指定するということである。 表名や列名などを動的に指定することは、普通のSQL(静的SQL)では無理 なのである。 2. 動的SQLの導入 2-1. 動的
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く