[pgsql-jp: 35846] Re: SQL をファイルから実行させるには
Masayuki Tadano
tadano @ d-product.co.jp
2005年 8月 17日 (水) 10:13:30 JST
ただのと申します。
>
> 櫻井です。
>
> 萱野さん、藤本さん、ありがとうございます。
>
> 昨日から似たようなコマンドはトライしていて、今日教えていただいた
> コマンドを実行しましたが、エラーになります。
> よろしくお願いします。
>
> 実行方法としては
>
> (1) /home/test/insert.sql がSQL文が記述されているファイルで、
> 中身はこの一行が書かれています。
>
> insert into wk_qmail_log(mail_address, client_id) values('11111',345);
>
> ⇒拡張子は.sql? .sh? chmod で実行権を与えておく?
これは、コマンドが読み込むファイルなので、ファイル名は何でも
良いですし、パーミッションは r があればよいですね。
> (2) ディレクトリを移動
>
> cd /usr/local/pgsql/bin
>
> (3) pgsql(postgreのユーザ)にチェンジ
>
> su pgsql
>
> (4) psqlコマンドを実行
>
> psql test01 pgsql < /home/alsok01/insert.sql
>
> (5) /home/alsok01/insert.sql: 許可がありません
>
(2) から (5) はどこが間違っているというよりも、複合的なので
すが、簡単に言えば、コマンドを実行しているユーザーに対して
SQLを書いたファイルを読み込む権限があるかってことですね。
# (1)と(5)が矛盾している気も。
なので、
>
> 櫻井です。
>
> 自己レスです。
>
>
> 先ほどの実行ですが、
> /usr/local/pgsql/bin の下にSQLファイル insert.sql を置いたらうまく
> SQLが実行できました。
は可能だったと思うのですが、あまりいい解決策ではないですよね。
利用するユーザに PostgreSQL の設定(PATHなど)を設定して、そこ
からコマンドを実行するほうがよいような気がします。
--
Masayuki Tadano <tadano @ d-product.co.jp>
pgsql-jp メーリングリストの案内