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

PostgreSQLは、Linux、UNIX、Windows、OS Xを含むすべての主要なプラットフォームで利用できるオープンソースのオブジェクトリレーショナルデータベース管理システム(ORDBMS)です。質問する場合は、Postgresの正確なバージョンをお知らせください。管理または高度な機能に関する質問は、dba.stackexchange.comに直接送信してください。

1
Postgresql-データベースをバックアップし、別の所有者に復元しますか?
次のコマンドを使用して、別のサーバー上のデータベースでバックアップを実行しましたが、必要な役割とは異なります。 pg_dump -Fc db_name -f db_name.dump 次に、データベースを復元する必要がある別のサーバーにバックアップをコピーしましたが、そのデータベースに使用されたそのような所有者はありません。データベースに所有者owner1がいるとしましょう。しかし、別のサーバーには私だけがいてowner2、そのデータベースを復元して所有者を変更する必要があります。 復元時に別のサーバーで行ったこと: createdb -p 5433 -T template0 db_name pg_restore -p 5433 --role=owner2 -d db_name db_name.dump しかし、復元を実行すると、次のエラーが発生します。 pg_restore: [archiver (db)] could not execute query: ERROR: role "owner1" does not exist 所有者を変更するように指定するにはどうすればよいですか?それとも不可能ですか?

2
それぞれが外部キーである要素のPostgreSQL配列
アプリ用のDBを作成しようとしていますが、最善の方法を見つけたいのはUsers、Itemsテーブルとテーブルの間に1対多の関係を作成することです。 3番目のテーブルを作成できReviewedItems、列をUseridとidにすることができることはわかっていますが、たとえば、にItem列を作成できるかどうかを知りたいUsersのですがreviewedItems、これは、Itemsその外部キーを含む整数配列です。User検討しています。 PostgreSQLでこれができる場合は、お知らせください。そうでない場合は、3番目のテーブルルートをたどります。

8
Postgresqlテーブルは存在しますが、クエリ時に「関係が存在しません」と表示されます
いくつかのテーブルを持つpostgresqlデータベースがあります。クエリした場合: SELECT column_name FROM information_schema.columns WHERE table_name="my_table"; 正しく返される列のリストを取得します。 ただし、クエリを実行すると、次のようになります。 SELECT * FROM "my_table"; エラーが発生します: (ProgrammingError) relation "my_table" does not exist 'SELECT *\n FROM "my_table"\n' {} 列を取得できるのにテーブルをクエリできない理由について何か考えはありますか?目標は、テーブルをクエリできるようにすることです。
83 sql  postgresql 

10
テーブルの行を更新したり、存在しない場合は挿入したりするにはどうすればよいですか?
私は次のカウンターの表を持っています: CREATE TABLE cache ( key text PRIMARY KEY, generation int ); カウンターの1つをインクリメントするか、対応する行がまだ存在しない場合はゼロに設定したいと思います。標準SQLで並行性の問題なしにこれを行う方法はありますか?操作はトランザクションの一部である場合もあれば、別個の場合もあります。 可能であれば、SQLはSQLite、PostgreSQL、MySQLで変更せずに実行する必要があります。 検索により、並行性の問題に悩まされているか、データベースに固有のアイデアがいくつか見つかりました。 INSERT新しい行を試してUPDATE、エラーが発生した場合。残念ながら、のエラーINSERTは現在のトランザクションを中止します。 UPDATEINSERT行。行が変更されていない場合は、新しい行。 MySQLにはON DUPLICATE KEY UPDATE句があります。 編集:すべての素晴らしい返信をありがとう。ポールは正しいように見えますが、これを行うための単一のポータブルな方法はありません。それは非常に基本的な操作のように聞こえるので、それは私にとって非常に驚くべきことです。

3
Postgresqlで名前による制約の削除
名前を知っているだけでPostgresqlに制約名をドロップするにはどうすればよいですか?サードパーティのスクリプトによって自動生成される制約のリストがあります。テーブル名を知らずに制約名だけを削除する必要があります。
83 postgresql 

2
postgresフロントエンドでタブを指定する方法COPY
psqlの「\ copy」コマンドを使用して、タブ区切りファイルからPostgresにデータをプルしたいと思います。私はこのコマンドを使用しています: \copy cm_state from 'state.data' with delimiter '\t' null as ; しかし、私はこの警告を受け取ります(テーブルは実際に正常にロードされます): WARNING: nonstandard use of escape in a string literal LINE 1: COPY cm_state FROM STDIN DELIMITER '\t' NULL AS ';' HINT: Use the escape string syntax for escapes, e.g., E'\r\n'. '\ t'が正しくない場合、タブを指定するにはどうすればよいですか?
83 postgresql 

7
NULLまたはISNULLのIN句
Postgresはデータベースです IN句にNULL値を使用できますか?例: SELECT * FROM tbl_name WHERE id_field IN ('value1', 'value2', 'value3', NULL) これらの4つの値に制限したいと思います。 上記のステートメントを試しましたが、機能しません。実行されますが、ID_fieldsがNULLのレコードは追加されません。 OR条件も追加しようとしましたが、これによりクエリが実行され、終わりが見えなくなります。 SELECT * FROM tbl_name WHERE other_condition = bar AND another_condition = foo AND id_field IN ('value1', 'value2', 'value3') OR id_field IS NULL 助言がありますか?


2
PostgreSQLプロセスが「アイドル状態のトランザクション」であるとはどういう意味ですか?
PostgreSQLプロセスが「アイドル状態のトランザクション」であるとはどういう意味ですか? 私が見ているサーバーでは、「ps ax | greppostgres」の出力に次のような9つのPostgreSQLプロセスが表示されます。 postgres: user db 127.0.0.1(55658) idle in transaction これは、トランザクションがコミットされるのを待って、一部のプロセスがハングしていることを意味しますか?関連するドキュメントへのポインタをいただければ幸いです。
83 postgresql 

3
postgresqlのIF-THEN-ELSEステートメント
私は以下を行うためにpostgresqlクエリを書くことを探しています: if(field1 > 0, field2 / field1 , 0) このクエリを試しましたが、機能しません if (field1 > 0) then return field2 / field1 as field3 else return 0 as field3 ありがとう
83 sql  postgresql 

5
SQLServerのようなjoinin from句を使用してselect句でPostgresqlサブクエリを実行するにはどうすればよいですか?
postgresqlで次のクエリを書き込もうとしています。 select name, author_id, count(1), (select count(1) from names as n2 where n2.id = n1.id and t2.author_id = t1.author_id ) from names as n1 group by name, author_id これは確かにMicrosoftSQL Serverで機能しますが、postegresqlではまったく機能しません。そのドキュメントを少し読んだところ、次のように書き直すことができたようです。 select name, author_id, count(1), total from names as n1, (select count(1) as total from names as n2 where n2.id = …

8
整数をチェックするSQLLIKE条件?
SQL LIKE条件のセットを使用して、アルファベットを調べ、適切な文字で始まるすべてのアイテムを一覧表示します。たとえば、タイトルが文字「A」で始まるすべての本を取得します。 SELECT * FROM books WHERE title ILIKE "A%" 文字の場合は問題ありませんが、任意の番号で始まるすべてのアイテムを一覧表示するにはどうすればよいですか?これが価値があるのは、PostgresDBです。
83 sql  postgresql 


7
ワイルドカードを使用してPostgreSQLで複数のテーブルを削除する方法
パーティションを操作する場合、多くの場合、すべてのパーティションを一度に削除する必要があります。 しかしながら DROP TABLE tablename* 動作しません。(ワイルドカードは尊重されません)。 ワイルドカードを使用して1つのコマンドで複数のテーブルを削除するエレガントな(読みやすい:覚えやすい)方法はありますか?
82 sql  postgresql 

3
単純なPostgreSQL挿入を機能させることができません
postgresテーブルに単純な挿入を行おうとしていますが、挿入しようとしている値が列名として解釈されているというエラーが発生します INSERT INTO "imageTagBusinessMainCategory" (id, businessMainCategory) VALUES (DEFAULT, "auto dealer") ここで、idは主キーであり、nullではなく自動インクリメントするように設定されています。これらは、phpPgAdminでテーブルを設定するときにチェックしたボックスです。 ただし、このエラーが発生します。 ERROR: ERROR: column "auto dealer" does not exist Query = INSERT INTO "imageTagBusinessMainCategory" (id, businessMainCategory) VALUES (DEFAULT, "auto dealer") ここで読んだように、テーブル名を二重引用符で囲んでいます。 そしてDEFAULT、私がここで読んだように、IDを自動インクリメントするために使用されます。 何か案は?ありがとう!
82 sql  postgresql 

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