私はPostgreSQLを初めて使用しています。私はpgAdminツールを使って実行できるpgScriptの必要性を理解できませんでした。それはいつ使われるべきですか? plpgSQLができないことは何ができますか? Microsoft SQL Serverのそれに相当するものは何ですか?PostgresSQLのpgScriptの目的は何ですか?
13
A
答えて
10
pgScriptはクライアント側のスクリプト言語ですが、pl/PgSQLはサーバ上で動作します。つまり、彼らはまったく異なるユースケースを持っています。たとえば、PgScriptではトランザクションの状態を管理できますが、pl/PgSQLでは実行できませんが、pl/PgsqlはSQLの言語を拡張するために使用できます。
さらに、2つはクエリプランから動的SQLに至るまでに非常に異なる多くの処理を行い、pgScriptはクエリ間の往復を必要とすることを意味します。
-1
Toad Data ModelerのDDLスクリプトジェネレータを使用しました。
私のはpgAdmin-IIIで通常クエリの実行を使用してスクリプトを実行しましたが、それは私にエラーを与え続け:
"ERROR:リレーション "ユーザー" は既にSQL状態が存在する:42P07"。
実行しましたPgAdmin-IIIでpgScriptを実行しても正常に動作しました。
2
pgScriptの1つの用途は、変数を定義して後でSQLで使用することです。
はたとえば、あなたはこのような何かを行うことができます:
declare @mytbl, @maxid;
set @mytbl = 'sometable';
set @maxid = 2500;
set @res = select count(*) from @mytbl where id <= @maxid;
print @res;
このアプローチは、ちょうどあなたがそれらが複雑なSQLクエリの奥深くに埋もればかりではなく、スクリプトの先頭に変更したいすべての変数を持つことです。
もちろん、pgScriptは、彼のコメントで言及された@ {Craig Ringer}のようなPgAdmin IIIクライアント内でしか利用できない機能です。
関連する問題
- 1. Mongoclientとは何ですか?その目的は何ですか?
- 2. Ember.Containerの目的は何ですか
- 3. マーカーインターフェイスの目的は何ですか?
- 4. jquery.mobile.structureの目的は何ですか?
- 5. オペレータ "^"の目的は何ですか?
- 6. AccountManager(アンドロイド)の目的は何ですか?
- 7. SetDefaultFieldSortScoringの目的は何ですか?
- 8. Dockerビルドコンテキストの目的は何ですか?
- 9. Newtonsoft.Json.JsonToken.StartConstructorトークンの目的は何ですか?
- 10. SDL_opengl_glext.hの目的は何ですか?
- 11. Expressionクラスの目的は何ですか?
- 12. Control.GetPreferredSizeメソッドの目的は何ですか?
- 13. durandalの目的は何ですか?
- 14. Ember.js - Ember.lookupの目的は何ですか
- 15. IEnumeratorの目的は何ですか
- 16. `__metaclass__ = type`の目的は何ですか?
- 17. デルファイ:icontentの目的は何ですか?
- 18. ApplicationBuilder.Propertiesの目的は何ですか?
- 19. EasyMock.andVoid()の目的は何ですか?
- 20. PHPロギングフレームワークの目的は何ですか?
- 21. ボイドキャストの目的は何ですか?
- 22. グント:cwdの目的は何ですか?
- 23. データセットの目的は何ですか?
- 24. React-Router:IndexRouteの目的は何ですか?
- 25. Objects.compare()メソッドの目的は何ですか?
- 26. QTPLUGIN、その目的は何ですか?
- 27. VisitorIdentificationコントロールの目的は何ですか?
- 28. ErrorKindの目的は何ですか?
- 29. TPopupActionBarの目的は何ですか?
- 30. CultureInfo.CurrentCultureの目的は何ですか?
'pgScript'はPostgreSQLではなく' PgAdmin-III'の機能ですが、本当に少し不幸です。 'pgAdminScript'にする必要があります。私はそれが実際に使われているのを見たことはありませんが、私は人々がそれを使用すると確信しています。私はいつもPL/PgSQLを使って普通の 'psql'で、' psycopg2'(Python)や 'DBI'や' DBD :: Pg'(Perl)を使ってPostgreSQLと対話するPythonやPerlスクリプトを使って作業しています –
"Execute pgScript"のように、トランザクションの一部として文を実行するのを避けます。データベースの束などを削除するときに役立ちます。 – beldaz