sql >> Database >  >> RDS >> PostgreSQL

De vergeten toewijzingsoperator =en de alledaagse :=

In PL/PgSQL-parser wordt de toewijzingsoperator gedefinieerd als

assign_operator : '='
                | COLON_EQUALS
                ;

Dit is een verouderde functie, aanwezig in de broncode sinds 1998, toen het werd geïntroduceerd - zoals we kunnen zien in de PostgreSQL Git-repo.

Vanaf versie 9.4 is het officieel gedocumenteerd.

Deze eigenaardigheid - van het hebben van twee operators voor hetzelfde - werd naar voren gebracht op de pgsql-gebruikerslijst, en sommige mensen vroegen om het te verwijderen, maar het wordt nog steeds in de kern bewaard omdat een redelijk corpus van legacy-code ervan afhankelijk is.

Zie dit bericht van Tom Lane (core Pg-ontwikkelaar).

Dus, om je vragen direct te beantwoorden:

Heb ik niet een gedeelte in de documenten gevonden waarin dit wordt vermeld en/of uitgelegd?

Je hebt het niet gevonden omdat het niet gedocumenteerd was, wat is opgelost vanaf versie 9.4.

Zijn er gevolgen bekend als u =gebruikt in plaats van :=.

Er zijn geen neveneffecten van het gebruik van = , maar u moet := . gebruiken voor opdracht om uw code leesbaarder te maken en (als bijwerking) meer compatibel met PL/SQL.

Update:in zeldzame scenario's kan er een neveneffect zijn (zie het antwoord van Erwin)

UPDATE:antwoord bijgewerkt dankzij input van Daniel, Sandy &anderen.



  1. SQL Server-gegevens invoegen met Oracle® SQL*Loader

  2. Verbind uw OEM met Grafana met behulp van de Enterprise Manager-app voor Grafana

  3. 7 manieren om dubbele rijen in SQL Server te vinden terwijl u een primaire sleutel negeert

  4. hoe xmltable te gebruiken in orakel?