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

15
Postgresql-DBへの自動接続が原因でデータベースを削除できません
私がデータベースを削除しようとするたびに、私は次のようになります: ERROR: database "pilot" is being accessed by other users DETAIL: There is 1 other session using the database. 私が使うとき: SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE pg_stat_activity.datname = 'TARGET_DB'; そのDBからの接続を終了しましたが、その後データベースをドロップしようとすると、誰かがそのデータベースに自動的に接続してこのエラーが発生します。何ができるでしょうか?私を除いて、誰もこのデータベースを使用していません。

1
PostgreSQL INSERT ON CONFLICT UPDATE(upsert)はすべての除外値を使用します
行をアップサートし(PostgreSQL> = 9.5)、可能なINSERTを可能なUPDATEとまったく同じにしたい場合は、次のように記述できます。 INSERT INTO tablename (id, username, password, level, email) VALUES (1, 'John', 'qwerty', 5, 'john@mail.com') ON CONFLICT (id) DO UPDATE SET id=EXCLUDED.id, username=EXCLUDED.username, password=EXCLUDED.password, level=EXCLUDED.level,email=EXCLUDED.email もっと短い方法はありますか?ただ言うと、すべてのEXCLUDE値を使用します。 SQLiteで私は以前使用していました: INSERT OR REPLACE INTO tablename (id, user, password, level, email) VALUES (1, 'John', 'qwerty', 5, 'john@mail.com')

9
ONCONFLICT句で複数のconflict_targetを使用する
テーブルcol1に2つの列がありcol2、どちらも一意のインデックスが付けられています(col1は一意であり、col2も一意です)。 このテーブルに挿入し、ON CONFLICT構文を使用して他の列を更新する必要がありますが、両方の列をconflict_target句で使用することはできません。 できます: INSERT INTO table ... ON CONFLICT ( col1 ) DO UPDATE SET -- update needed columns here しかし、次のようないくつかの列に対してこれを行う方法: ... ON CONFLICT ( col1, col2 ) DO UPDATE SET ....
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.