PostgreSQLの最近のブログ記事

用途:外部結合していない複数のテーブルをトランザクション処理する場合などで使用
ポイント:
①currval()関数を使用する
②シーケンス名に大文字が含まれている場合の括弧の付け方にも注意(PostgreSQL特有!)

SQLの例:
BEGIN TRANSACTION
INSERT INTO "Sale" ( "user_id", "shop_id" ) VALUES ( 2468, 1234 );
INSERT INTO "SaleDetail" ( "sale_id", "prod_id", "prod_num" ) VALUES ( ( SELECT currval( '"Sale_id_seq"' ), 222, 2 );
COMMIT

INSERTされた直後のSERIALの値を知る方法

now() で保存された日時データを整形して取り出す方法

PostgreSQL 8系では、自身以外からの接続を受け付けるようにするには、postgresql.conf ファイル内の「listen_addressess」エントリを設定する必要がある(以前はtcpip_socket = true)。
この listen_addressess エントリでは、アクセスを許可するIPアドレスを指定するのだが、指定するIPアドレスは単一アドレスであることが必要。

たとえば、192.168.1.0/24 ネットワーク上のコンピュータからすべて接続を受け付けたい場合でも、以下の○の記述が必要。

○ 192.168.1.100, 192.168.1.101, ...
× 192.168.1.0/24

自宅サーバーが異常なハードディスクアクセス状態になり、SSHアクセスして確認したところ、各種コマンドも使用できないことがわかったので、しばらくしてから強制電源オフして再起動したところ、PostgreSQL が起動しなくなった。

以下の手順で修復できたので、記録しておく(「PostgreSQLの管理」ページを参考にしました)。
※どんな場合にもこの方法で対応できることが保障されているわけではないのでご注意下さい。

2009年9月

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30      

ウェブページ

Powered by Movable Type 4.25

このアーカイブについて

このページには、過去に書かれたブログ記事のうちPostgreSQLカテゴリに属しているものが含まれています。

前のカテゴリはOpenSSHです。

次のカテゴリはUbuntuです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。