alf58さんの助け合いフォーラム投稿一覧

助け合いフォーラムの投稿
2023/03/10 コメント
正解の選択肢の文言が誤っている
設問は「適切ではないものはどれか。」なので、正解の選択肢として正しいのではないでしょうか。
2023/03/06 返信
PostgreSQLサーバの複数インストールについて

解釈の誤りだと思います。

「データベースクラスタは、PostgreSQLサーバ(プロセス群やサービス)と1対1で対応します。ですから、複数のサーバで1つのデータベースクラスタを分散管理することはできません。

こちらは「PostgreSQLサーバ(プロセス群やサービス)」なので、pg_ctl start で起動したプロセス群のことを説明しています。
「pg_ctlで起動したPostgreSQLサーバとデータベースクラスタは1対1」という説明です。

「PostgreSQLは1台のマシンに複数インストールすることも、1つのPostgreSQLインストールに複数のデータベースクラスタを作成することもできます。」

こちらは「PostgreSQLインストール」なので、ソフトウェアの説明をしています。
「1台のマシンに複数のPostgreSQLをインストールすることができる。1つだけインストールして複数のデータベースクラスタ作成することもできる(クラスタの数だけインストールする必要はない)」という説明です。

2023/02/28 投稿
LOGIN権限とCONNECT権限の違い

解説でLOGINのことを「データベースへ接続する権限」と説明されていますが、データベースに接続する権限はCONNECTであり、LOGINはログイン可能かではないでしょうか。
試しにPUBLICロールからCONNECT権限をREVOKEした状態で選択肢にあるコマンドでユーザを作成しましたが、下記のようにログインはできてもデータベースに接続することはできませんでした。

Y:\postgres>psql -U test -W test
パスワード:
psql: FATAL: データベース"test"へのアクセスが拒否されました
DETAIL: ユーザはCONNECT権限を持ちません。

LOGIN権限がない場合のエラーは下記であり、LOGINとCONNECTは明確に区別されている認識です。

Y:\postgres>psql -U test -W postgres
パスワード:
psql: FATAL: ロール"test"はログインすることが許されていません

問題が暗黙に「PUBLICロールにデータベースに接続する権限がある」ことを前提としており、設問が不適切ではないかと感じます。

2023/02/24 投稿
PostgreSQLではテーブル単位で自動コミットの設定ができる?

問題文に「「city」テーブルでは、自動コミットがONになっている。」とありますが、テーブルの設定に自動コミットのON/OFFがあるのでしょうか?
調べてもテーブルの設定に自動コミットがあるというような情報は見つかりませんでした。

2023/02/24 投稿
「\?コマンドは、ヘルプ情報を表示する」は正答ではないか

解説の参考URLのドキュメントには、?の説明に「ヘルプ情報を表示します。」と書かれています。

2023/02/23 投稿
問題のコマンドを実行すると警告が出る

Windowsの11.19環境でコマンド試しましたが、警告が出ます。
提示されているコマンドはデータベース名の指定がコマンドの真ん中にあり、解説に書かれている書式とも一致していません。
問題に不備があるのではないでしょうか。

Y:\postgres>psql -U postgres test -c "select * from sample"
psql: 警告: 余分なコマンドライン引数 "-c" は無視されました。
psql: 警告: 余分なコマンドライン引数 "select * from sample" は無視されました。
psql (11.19)
"help" でヘルプを表示します。

test=#

2023/02/21 投稿
「\copy sample to 'sample.txt' csv」も正答ではないでしょうか

マニュアルのCOPYの構文を見ると、ファイル名は '' でくくられており、間違いだとは思えません。
以下、PostgreSQL 11.5のマニュアルから抜粋です。

COPY table_name [ ( column_name [, ...] ) ]
    FROM { 'filename' | PROGRAM 'command' | STDIN }
    [ [ WITH ] ( option [, ...] ) ]

COPY { table_name [ ( column_name [, ...] ) ] | ( query ) }
    TO { 'filename' | PROGRAM 'command' | STDOUT }
    [ [ WITH ] ( option [, ...] ) ]


ここでoptionは以下のいずれかです。

    FORMAT format_name
    OIDS [ boolean ]
    FREEZE [ boolean ]
    DELIMITER 'delimiter_character'
    NULL 'null_string'
    HEADER [ boolean ]
    QUOTE 'quote_character'
    ESCAPE 'escape_character'
    FORCE_QUOTE { ( column_name [, ...] ) | * }
    FORCE_NOT_NULL ( column_name [, ...] )
    FORCE_NULL ( column_name [, ...] )
    ENCODING 'encoding_name'

"delimiter as" の書き方は互換性の項目に「9.0より前に使用されていた」として書かれていますが11.5の正式な構文にはないため、どちらかと言えば「\copy sample to sample.txt delimiter as ','」の選択肢を誤りにすべきではないでしょうか。

2023/02/19 投稿
「initdbコマンドの実行時に、自動で作成される」も正答ではないでしょうか

Windows環境の11.19環境でinitdbを実施しましたが、postgresql.auto.confが作成されており下記2行の記載がありました。
2番目の選択肢「initdbコマンドの実行時に、自動で作成される」も正答だと思います。

# Do not edit this file manually!
# It will be overwritten by the ALTER SYSTEM command.

2023/02/19 投稿
不正選択肢の解説について

・データファイルが肥大化してメモリ不足になる
VACUUMコマンドを適切に実行しなかった場合の説明です。

VACUUMを実行しなかった場合「データファイルが肥大化」はわかるのですが、「メモリ不足になる」のでしょうか?

戻る