sql >> データベース >  >> RDS >> PostgreSQL

忘れられた代入演算子=そしてありふれた:=

    PL / PgSQLパーサーでは、代入演算子は

    として定義されます。
    assign_operator : '='
                    | COLON_EQUALS
                    ;
    

    これはレガシー機能であり、PostgreSQLGitリポジトリで確認できるように1998年に導入されて以来ソースコードに存在しています。

    バージョン9.4以降、公式に文書化されています。

    この特異性(同じことに対して2つの演算子がある)はpgsqlユーザーリストで提起され、一部の人々はそれを削除するように要求しましたが、レガシーコードの公正なコーパスがそれに依存しているため、コアに保持されています。

    Tom Lane(コアPg開発者)からのこのメッセージを参照してください。

    だから、あなたの質問にまっすぐに答えるために:

    これについて言及および/または説明しているセクションがドキュメントに見つかりませんでしたか?

    文書化されていないため、見つかりませんでした。バージョン9.4で修正されています。

    :=の代わりに=を使用した既知の結果はありますか?

    =を使用しても副作用はありません 、ただし、:=を使用する必要があります コードを読みやすくし、(副作用として)PL/SQLとの互換性を高めるための割り当て用。

    更新:まれなシナリオでは副作用が発生する可能性があります(Erwinの回答を参照)

    更新:ダニエル、サンディなどからの入力のおかげで回答が更新されました。



    1. WordPressでHHVMを使用する

    2. Postgresでのみ関数のバックアップを取る方法

    3. OracleSQLでタイムスタンプを日付に変換する

    4. PHPとMySQLを使用してニュースレターシステムを構築する