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

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

2
PostgreSQLから現在のUNIXタイムスタンプを取得するにはどうすればよいですか?
Unixタイムスタンプは、UTC 1970年1月1日午前0時からの秒数です。 PostgreSQLから正しいUNIXタイムスタンプを取得するにはどうすればよいですか? currenttimestamp.comおよびtimestamp.1e5b.deと比較すると、PostgreSQLから予想される時間を取得できません。 これは正しいタイムスタンプを返します: SELECT extract(epoch from now()); これはしませんが: SELECT extract(epoch from now() at time zone 'utc'); 私はUTC +02のタイムゾーンに住んでいます。PostgreSQLから現在のUNIXタイムスタンプを取得する正しい方法は何ですか? これは正しい時間とタイムゾーンを返します: SELECT now(); now ------------------------------- 2011-05-18 10:34:10.820464+02 別の比較: select now(), extract(epoch from now()), extract(epoch from now() at time zone 'utc'); now | date_part | date_part -------------------------------+------------------+------------------ 2011-05-18 10:38:16.439332+02 | 1305707896.43933 …

3
複合インデックスは、最初のフィールドのクエリにも適していますか?
フィールドAとを持つテーブルがあるとしましょうB。A+ Bで定期的にクエリを作成するため、で複合インデックスを作成しました(A,B)。クエリAも複合インデックスによって完全に最適化されますか? さらに、にインデックスを作成しましたAが、Postgresはでのみクエリに複合インデックスを使用していAます。前の答えが正の場合、それは実際には重要ではないと思いますが、単一のAインデックスが利用可能な場合、デフォルトで複合インデックスを選択するのはなぜですか?

6
ストアドプロシージャはSQLインジェクションを防ぎますか?
ストアドプロシージャがPostgreSQLデータベースに対するSQLインジェクション攻撃を防ぐのは本当ですか?少し調べてみると、ストアドプロシージャのみを使用していても、SQL Server、Oracle、MySQLはSQLインジェクションに対して安全ではないことがわかりました。ただし、この問題はPostgreSQLには存在しません。 PostgreSQLコアのストアドプロシージャの実装は、SQLインジェクション攻撃を防ぎますか?または、ストアドプロシージャのみを使用する場合でも、PostgreSQLはSQLインジェクションの影響を受けますか?もしそうなら、例を示してください(本、サイト、論文など)。

4
PostgreSQLテーブルの行のサイズを測定する
PostgreSQLテーブルがあります。素晴らしくて速いのselect *に対し、非常に遅いselect idです。行のサイズが非常に大きく、転送に時間がかかっているか、または他の要因である可能性があります。 すべてのフィールド(またはほとんどすべてのフィールド)が必要なので、サブセットを選択するだけでは簡単に修正できません。必要なフィールドの選択がまだ遅いです。 以下に、テーブルスキーマから名前を除いたものを示します。 integer | not null default nextval('core_page_id_seq'::regclass) character varying(255) | not null character varying(64) | not null text | default '{}'::text character varying(255) | integer | not null default 0 text | default '{}'::text text | timestamp with time zone | integer | timestamp with time …


1
Postgres UPDATE…LIMIT 1
サーバーステータス(「アクティブ」、「スタンバイ」など)などのサーバーのクラスターに関する詳細を含むPostgresデータベースがあります。アクティブなサーバーはいつでもスタンバイにフェールオーバーする必要があり、特にどのスタンバイが使用されているかは気にしません。 データベースクエリでスタンバイのステータス(JUST ONE)を変更し、使用するサーバーIPを返すようにします。選択は任意です。サーバーのステータスはクエリによって変化するため、どのスタンバイが選択されているかは関係ありません。 クエリを1つの更新のみに制限することはできますか? ここに私がこれまで持っているものがあります: UPDATE server_info SET status = 'active' WHERE status = 'standby' [[LIMIT 1???]] RETURNING server_ip; Postgresはこれを好まない。別に何ができますか?

3
PostgreSQLで新しい列の位置を指定するにはどうすればよいですか?
列がある表がある場合: id | name | created_date 列を追加したい場合、私は使用します: alter table my_table add column email varchar(255) 次に、列は列の後に追加されcreated_dateます。 新しい列の位置を指定する方法はありますか?たとえば、次のように追加して、次のnameようなテーブルを取得できます。 id | name | email | created_date

5
PostgreSQLでのインデックスの機能
PostgreSQLでのインデックスの動作に関していくつか質問があります。Friends次のインデックスを持つテーブルがあります。 Friends ( user_id1 ,user_id2) user_id1そしてテーブルuser_id2への外部キーですuser これらは同等ですか?そうでない場合、なぜですか? Index(user_id1,user_id2) and Index(user_id2,user_id1) 主キー(user_id1、user_id2)を作成すると、自動的にインデックスが作成され、 最初の質問のインデックスが同等でない場合、上記のプライマリキーコマンドでどのインデックスが作成されますか?

4
パスワードプロンプトなしでpsqlを使用するには?
REINDEXデータベース内のインデックスを作成するスクリプトを作成しました。それらの1つを次に示します。 echo -e "\nreindex for unq_vbvdata_vehicle started at: `date "+%F %T"`" >> ${LOG_FILE} psql -U ${USERNAME} -h ${HOSTNAME} -d ${DBNAME} -c "REINDEX INDEX scm_main.unq_vbvdata_vehicle;" if [[ ${?} -eq 0 ]]; then echo "reindex for unq_vbvdata_vehicle finished at: `date "+%F %T"`" >> ${LOG_FILE} else echo "reindex for unq_vbvdata_vehicle failed" >> ${LOG_FILE} …
70 postgresql  index  psql 

5
json配列をpostgres配列に変換する方法は?
次のようなドキュメントdataを保持する列がありますjson。 { "name": "foo", "tags": ["foo", "bar"] } ネストされたtags配列を連結文字列(foo, bar)に変換したいと思います。それはarray_to_string()理論上の関数で簡単に可能になります。ただし、この関数はjson配列には作用しません。だから私はこのjson配列をPostgres に変える方法を疑問に思いますarrayか?

2
1つの大きなクエリまたは複数の小さなクエリの高速化とは何ですか?
私はさまざまな企業で働いていますが、一部の企業は、すべての「相対」テーブルを結合するビューを持つことを好むことに気付きました。しかし、その後、アプリケーション上で使用する必要があるのは1列のみです。 それでは、単純な選択を行い、それをシステムコードで「結合」する方が速いでしょうか? システムは、php、java、asp、データベースに接続する任意の言語です。 だから問題は、サーバー側(php、java、asp、ruby、python ...)からデータベースに行く方が速いか、必要なものをすべて取得する1つのクエリを実行するか、サーバー側からデータベースに移動して一度に1つのテーブルから列のみを取得するクエリ?


9
PostgreSQLでcurrval()を使用して最後に挿入されたIDを取得するにはどうすればよいですか?
私はテーブルを持っています: CREATE TABLE names (id serial, name varchar(20)) 挿入時に使用せずに、そのテーブルから「最後に挿入されたID」が必要RETURNING idです。関数があるようですが、CURRVAL()使用方法がわかりません。 私は試しました: SELECT CURRVAL() AS id FROM names_id_seq SELECT CURRVAL('names_id_seq') SELECT CURRVAL('names_id_seq'::regclass) しかし、どれも機能しません。currval()最後に挿入されたIDを取得するにはどうすればよいですか?

3
UUIDまたはGUIDを主キーとして使用する場合の欠点は何ですか?
分散システムを構築したいと思います。データベースにデータを保存する必要がありますが、一部のテーブルの主キーとしてUUIDまたはGUIDを使用すると便利です。UUID / GUIDは非常に大きく、ほとんどランダムであるため、この設計の欠点だと思います。別の方法は、自動インクリメントのINTまたはLONG​​を使用することです。 テーブルの主キーとしてUUIDまたはGUIDを使用することの欠点は何ですか? おそらく、DBMSとしてDerby / JavaDB(クライアント上)とPostgreSQL(サーバー上)を使用します。

2
インデックスが存在しない場合は作成します
インデックスが存在しない場合にインデックスを追加できる機能に取り組んでいます。比較するインデックスのリストを取得できないという問題に直面しています。何かご意見は? これは、次のコードで解決される列作成の問題と同様の問題です:https : //stackoverflow.com/a/12603892/368511

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