sql >> Databáze >  >> RDS >> PostgreSQL

Zapomenutý operátor přiřazení =a obyčejný :=

V analyzátoru PL/PgSQL je operátor přiřazení definován jako

assign_operator : '='
                | COLON_EQUALS
                ;

Toto je starší funkce, která je ve zdrojovém kódu přítomna od roku 1998, kdy byla představena – jak můžeme vidět v repozitáři PostgreSQL Git.

Počínaje verzí 9.4 je to oficiálně zdokumentováno.

Tato výstřednost – mít dva operátory pro stejnou věc – byla vznesena na seznamu uživatelů pgsql a někteří lidé požadovali její odstranění, ale stále zůstává v jádru, protože na ní spoléhá spravedlivý korpus staršího kódu.

Podívejte se na tuto zprávu od Toma Lanea (základního vývojáře Pg).

Takže, abych na vaše otázky odpověděl přímo:

Nenašel jsem v dokumentech nějakou sekci, která to zmiňuje a/nebo vysvětluje?

Nenašli jste jej, protože nebyl zdokumentován, což je od verze 9.4 opraveno.

Existují nějaké známé důsledky použití =místo :=.

Použití = nemá žádné vedlejší důsledky , ale měli byste použít := pro přiřazení, aby byl váš kód čitelnější a (jako vedlejší efekt) více kompatibilní s PL/SQL.

Aktualizace:ve vzácných případech může dojít k vedlejšímu důsledku (viz Erwinova odpověď)

AKTUALIZACE:odpověď aktualizována díky příspěvku od Daniela, Sandyho a dalších.



  1. Přehled křížové replikace PostgreSQL a MySQL

  2. Jak zacházet s chybou u duplicitních záznamů?

  3. Proveďte dynamický dotaz s go v sql

  4. Jak změnit tabulku na serveru SQL Server pomocí příkazu Alter - SQL Server / Výukový program T-SQL, část 35