問題タブ [psql]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
postgresql - psqlに渡された名前付き引数を引用するにはどうすればよいですか?
psqlには、名前付き引数を渡すための構造があります。
これは、スクリプト内で参照できます。
結果が得られます
開発中は、データベースのコピーをかなり頻繁に削除して再作成する必要があるため、プロセスを自動化しようとしています。したがって、すべてのユーザーを強制的に切断してからデータベースを削除するクエリを実行する必要があります。ただし、これが動作するデータベースはさまざまであるため、データベース名は引数である必要があります。
問題は、ユーザーを切断するためのクエリには文字列(WHERE pg_stat_activity.datname = 'dbname'
)が必要であり、ドロップするクエリには引用符で囲まれていないトークン(DROP DATABASE IF EXISTS dbname
)が必要なことです。(申し訳ありません。その種類のトークンを何と呼ぶかわかりません。)
DROPクエリで名前付き引数を引用符なしで正常に使用できますが、切断クエリで名前付き引数を引用符で囲むと、引数が展開されません。':name'
つまり、文字列の代わりに文字列を取得します'value'
。
DROPクエリで、引用符で囲まれていない値を文字列に変換したり、文字列を引用符で囲まれていないトークンに変換したりする方法はありますか?切断クエリとDROPクエリを別々のスクリプトに入れ、引数を引用符付きで切断に、引用符なしでDROPに渡すことで回避できますが、実際には2つのステップであるため、同じスクリプトに含めることをお勧めします。単一のプロセスで。
sql - PL/pgSQL 関数 + クライアント側 lo_import
postgres db へのドキュメントのインポートに問題があります。私は plpgsql 関数を持っています。より単純なバージョンは次のようになります。
そして psql コマンド:
両方のコードが 1 つのファイルに含まれています。クライアントサイトのlo_importが必要なため、ステートメントを挿入するためにlo_import()を配置できません。変数 LASTOID がありますが、add_file 関数では使用できません。また、add_file() を呼び出すたびに更新されるわけではありません。
では、どのようにデータベースに oid を配置できますか?この例では、'flag' と 'sth' を挿入ステートメントと引数付きの関数内のすべてで使用できますか? ファイルはクライアント コンピューターにあります。
postgresql - Postgres.app をインストールしましたが、動作しません
Mac にPostgres.appをインストールしましたが、正しく動作しません。インストールが完了し、アプリのアイコンがメニュー バーに表示され、ポート 5432 でリッスンしていると表示されますが、コマンド ラインから実行しようとすると、次のようになります。
以前に Homebrew 経由で PostgreSQL をインストールしていましたが、Postgres.app をインストールする前に削除しました。Mac OS X Lion を実行しています。
助けていただければ幸いです。私のマシンで PostgreSQL を実行したいと思っています。
qt4 - QtのQTableviewでテーブルを動的に(手動ではなく)編集する方法
LinuxのQtでGUIアプリケーションを作成しています。ここでは、テーブル
ビューでデータベース値を保持できるテーブルを作成します。プログラムでテーブルを動的に編集して
、プログラムの必要に応じてテーブルが自動的に変更されるようにします。
sql - クエリ結果を配列にプッシュする
私はbashシェルスクリプトを持っています。データベースからいくつかの行のデータをキャプチャした psql copy コマンドがあります。データベースからのデータは、bash スクリプトで使用する実際の SQL ステートメントです。ステートメントはさまざまな長さであり、特定のステートメントを動的に呼び出すことができるようにしたいので、ステートメントをデータベースに入れます。
1) copy ステートメントで使用する区切り文字がわかりません。コンマやパイプは、データベースからのデータに含まれているため使用できません。それらはデータベースにないため、いくつかのランダムな文字を試しましたが、コピーには適合し、ASCII文字は1つしか必要ありません。
また、複雑にするために、各行の query_name と query_string を取得する必要があります。
これは私が現在持っているものです。コピーですべてのデータを正常に取得できますが、後でループできるように、データを配列にプッシュしたいだけです。
mysql - mysqldump を取得して、psql 入力に適したデータをダンプします (一重引用符をエスケープ)
MySQL から PostgreSQL にデータベースを移植しようとしています。Postgres でスキーマを再構築したので、テーブルを再作成せずにデータを取得するだけで済みます。
すべてのレコードを反復処理して一度に 1 つずつ挿入するコードを使用してこれを行うこともできますが、それを試してみたところ、データベースのサイズが遅くなるため、代わりに mysqldump と psql へのパイプを使用しようとしています (1 回につき 1 回)。動作するようになったら並列化する可能性があります)。
ここまでたどり着くには、さまざまなフープを飛び越えて、さまざまなフラグをオンまたはオフにして、漠然と正気なダンプを取得する必要がありました。繰り返しますが、データを取得するための空のスキーマを既に準備しているため、これは INSERT INTO のみをダンプします。
sed
その醜いコマンド以外はすべて管理可能です。sed
MySQL のアプローチを、文字列内の単一引用符を引用する ( 'O\'Connor'
) o PostgreSQL の引用要件 ( ) に変換しようと試みています'O''Connor'
。ダンプに次のような文字列が含まれるまでは機能します: ... はい、この形式のユーザー入力がデータベースにあるようです。これは完全に有効ですが、コマンド'String ending with a backslash \\'
を渡しません。sed
コマンドに後読みを追加することもできますがsed
、うさぎの穴に這い入っているような気がします。次のいずれかの方法はありますか:
a) 一重引用符を二重にして引用するように mysqldump に指示します b) バックスラッシュが引用エスケープとして解釈されることを期待するように psql に指示しますか?
との違いには別の問題がBINARY
ありbytea
ますが、base64 エンコーディング/デコーディング フェーズでそれを回避しました。
編集 | (b) を で実行できるように見えますがset backslash_quote = on; set standard_conforming_strings = off;
、それをパイプ出力の先頭に挿入する方法がわかりません。
delphi - ユーザーの認証にpsqlコマンドが失敗したかどうかを確認します
Delphi
psqlスクリプトが戻ってきたことをどのように見つけることができるかを使用して
次のスクリプトを実行する場合(psqlRun.bat)
上記のスクリプトは、shellexecuteを使用して実行されました
戻り値は32を超えていましたが(正常に実行されました)、パスワード認証に失敗しました。パスワードが失敗した場合にスクリプトが失敗したかどうかをdelphiで確認する方法はありますか?が作成されていない可能性があるためpgpass.conf
、ファイルでユーザーパスワードを確認できません。ユーザーがパスワードを知らないか、間違ったパスワードを入力した可能性があります。
プログラムで認証が失敗したかどうかを確認する方法は?
注:Postgresql 9.0
postgresql - 不明な名前の PostgreSQL ドロップ制約
いくつかの制約を削除して最後に復元する必要がある SQL スクリプトがありますが、制約名は自動生成され、スクリプトを実行するたびに異なります。
テーブル名から制約名を取得する方法は知っていますが、drop ステートメントでこの情報を使用することはできないようです。
alter table something drop constraint (some subquery)
構文エラーです。
理想的には、制約名を取得して変数に格納したいのですが、Postgres がそれをサポートしていないようで、 psql で動作させることはできません\set
。
これは可能ですか?
postgresql - psql でログイン
ターミナルからpostgresを実行しようとしています。私は何が欠けていますか?
postgresql - Psql はすべてのテーブルを一覧表示します
liferay
PostgreSQL インストールのデータベース内のすべてのテーブルを一覧表示したいと考えています。それ、どうやったら出来るの?
SELECT * FROM applications;
データベースで実行したいと思いliferay
ます。applications
私のliferay dbのテーブルです。これはどのように行われますか?
これが私のすべてのデータベースのリストです。