タグ付けされた質問 「postgresql」

PostgreSQLのすべてのバージョン。そのコンテキストが重要な場合は、postgresql-11などのバージョン固有のタグを追加します。


3
SUM()を2回使用するのは最適ではありませんか?
句で使用する場合(または派生テーブルを使用する場合)SUM、2回記述する必要があることはわかっていHAVINGます。 SELECT id, sum(hours) AS totalhours FROM mytable GROUP BY id HAVING sum(hours) > 50; 私の質問は、これが最適ではないかどうかです。プログラマーとして、このクエリは、DBが合計を2回計算するように見えます。そうですか、それともDBエンジンが行う最適化に依存すべきですか? 更新:比較可能なクエリの説明: postgres=> explain select sum(counttodo) from orderline group by orderlineid having sum(counttodo) > 100; QUERY PLAN -------------------------------------------------------------------- HashAggregate (cost=1.31..1.54 rows=18 width=8) Filter: (sum(counttodo) > 100) -> Seq Scan on orderline (cost=0.00..1.18 rows=18 width=8) (3 …

2
トランザクション、参照、および複式簿記を実施する方法は?(PG)
複式簿記は すべてのトランザクションまたはイベントが少なくとも2つの異なる名目元帳勘定を変更する財務会計システムで財務情報を記録するための一連のルール。 アカウントは「借方」または「貸方」にすることができ、すべての貸方の合計は、すべての借方の合計と等しくなければなりません。 これをPostgresデータベースにどのように実装しますか?次のDDLを指定します。 CREATE TABLE accounts( account_id serial NOT NULL PRIMARY KEY, account_name varchar(64) NOT NULL ); CREATE TABLE transactions( transaction_id serial NOT NULL PRIMARY KEY, transaction_date date NOT NULL ); CREATE TABLE transactions_details( id serial8 NOT NULL PRIMARY KEY, transaction_id integer NOT NULL REFERENCES transactions (transaction_id) ON UPDATE …

1
複数のSQLファイルを含むマスターファイルを実行できるPostgres管理GUIはありますか
本当に長いスクリプトを開発しています。スクリプトをより小さく管理しやすいスクリプトに分割し、各sqlファイルをマスターファイルに含めてから、マスターファイルを実行します。 例: master.sql 内容(使用する構文がわかりません): file1.sql file2.sql file3.sql psql -fコマンドラインでの使用および\iこれらのファイルのインクルードに関するいくつかのチュートリアルを見つけましたが、ここでは、端末を避け、GUIを使用してデータベースを管理し、master.sqlスクリプトを実行することをお勧めします。 これはどのpostgres管理GUIでも可能ですか?おそらくそれはpgAdminにはありません。

1
PL / pgSQLでテーブル型の変数を宣言する
クエリ結果を保持するためにPL / pgSQLで型tableの変数を宣言する方法があるかどうか疑問に思っていますか?たとえば、次のように表現するにはどうすればよいですか。 q1 = select * from foo; q2 = select * from bar; for t1 in q1: for t2 in q2: -- do something with t1 and t2 return next構文を調べましたが、それは戻り値しか処理できないようです。

3
配列フィールドを持つテーブルタイプをpostgresqlの関数に渡す方法
本というテーブルがあります CREATE TABLE book ( id smallint NOT NULL DEFAULT 0, bname text, btype text, bprices numeric(11,2)[], CONSTRAINT key PRIMARY KEY (id ) ) そして関数save_book CREATE OR REPLACE FUNCTION save_book(thebook book) RETURNS text AS $BODY$ DECLARE myoutput text :='Nothing has occured'; BEGIN update book set bname=thebook.bname, btype=thebook.btype,bprices=thebook.bprices WHERE id=thebook.id; IF …

2
\ copyを使用する場合のpsqlの変数置換
私はpsqlコマンド\ copyを使用していますが、クエリのスクリプトを作成するときに行ったように、シェルから(テーブル名の)変数を変数に渡したいと思います。私はpsqlのドキュメントを読みました: コマンドの構文は、SQL COPYコマンドの構文に似ています。このため、\ copyコマンドには特別な解析ルールが適用されます。特に、変数置換ルールとバックスラッシュエスケープは適用されません。 これは非常に決定的なようですが、誰かが回避策を知っているのでしょうか?

1
SQL Server 2012でNVARCHAR列の同等クエリが複数の結果を生成する
ペットプロジェクトをPostgreSQL(9.2.2)からSQL Server(2012 Standard)に移行中です。 Unicodeの単語をクエリするときに、興味深い現象に気づきました。定義を考えると: CREATE TABLE [word]( [id] [int] IDENTITY(0,1) NOT NULL, [value] [nvarchar](255) NULL ); そしてデータ: insert into word (value) values (N'ῥύπῳ'); insert into word (value) values (N'ἀπὸ'); insert into word (value) values (N'ἀπό'); insert into word (value) values (N'ἐπὶ'); insert into word (value) values (N'ἐπί'); insert into word …

1
Postgres 9.2のストリーミングレプリケーションは、スキーマの変更と初期テーブル設定をどのように処理しますか?
プライマリ物理データベースサーバーのすぐ下にある物理サーバーにバックアップデータベースをセットアップしたいと考えています。私はPostgres 9.2を使用しており、同期のストリーミングレプリケーション(アトミック性のため)を使用したいのですが、A)初期テーブルセットアップがサーバー1からサーバー2に転送される(たとえば、syncdbサーバー1)に一連のテーブルを作成する私のDjangoアプリから、およびB)サーバー1からサーバー2への継続的なスキーマ変更の実行方法(たとえば、Django South移行をALTER TABLE実行し、クエリを送信するだけでなく、追加/インデックスの削除など)。これらはストリーミングレプリケーションで透過的に処理されますか、それとも両方のサーバー間でこの変更に影響を与えるために何かしなければならないことがありますか?

1
PostgreSQLのインストールに必要な権限
PostgreSQLデータベースは初めてです。自分のマシンにインストールする必要があります。 私はシステムの管理者ではありません。 非管理者がインストールできる場合、誰かが提案できますか? .exe以外にインストールする方法が他にある場合は、お知らせください。 前もって感謝します。

1
すべてのステートメントをログに記録するようにPostgreSQLを設定することによるパフォーマンスへの影響
Windows 7 64ビット上のPostgreSQL 9.2.2。 ファイルの設定log_statementでは、postgresql.confログに記録するステートメントを指定します(なし、DDL、データ変更、またはすべて)。設定はどの程度log_statement = 'all'パフォーマンスを低下させますか?これによりパフォーマンスが大幅に低下することを読みましたが、これらの主張は古い記事に由来するものlog_statement = 'none'です。


2
PostgreSQLが起動可能/復元可能になるのを待つ方法は?
カスタムLinuxディストリビューションを実行している仮想マシンでPostgreSQL 8.2.1から9.2へのアップグレードをテストしています。アップグレード手順は次のとおりです。 pgサービスを開始する すべてのDBをバキュームします(これが必要かどうかは不明です) バックアップ pg_dumpall pgサービスを停止します データが格納されているディレクトリを移動します(/var/pg;これはシンプルな単一サーバーのセットアップです) PostgreSQL 9.2をインストールする initdb サーバーを起動する ダンプされたデータを復元する reindexdb すべてのDB referential_constraintsビューを再作成する すべてのDBをバキュームします(このアップグレード後にAFAIKが必要です) この手順は、1つのホストで問題なく動作し、問題なくバックアップおよび復元できます。データベースポイントが異なる1〜7の別のマシンでは正常に動作しますが、sleep 1after を追加しない限りサーバーは起動しません。initdbそれでも、「データベースシステムが起動中」であるため、ダンプされたデータを復元できません。これらのひどいハックを除いて、これに対処する標準的な方法は何ですか? sleepどちらかの操作の前に、十分な時間をかけてください。 動作するまで、または十分なタイムアウトになるまでループするか、 簡単なクエリを受け入れるか、タイムアウトに達するまでループします。 編集:「ソリューション」は結局機能しませんでした。データベースが復元を実行する準備ができていることを確認するには何が必要ですか?

2
postgresqlの高可用性
PostgreSQLデータベースは初めてです。最近、開発者はシステムでいくつかのアップグレードを行う必要がありました。 そのため、データベースのフェイルオーバーを実装するために、いくつかの方法を実装することを計画しています。 ここの postgresql wikiからの私の読書に基づいて、私たちはウォームスタンバイまたはホットスタンバイのいずれかを実装しようとしています。だから私の質問は: それらの主な違いは何ですか? どっちがいいですか? Postgresデータベースで高可用性を実現するために検討できる他の方法はありますか?


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.