PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Zapomniany operator przypisania =i banał :=

W parserze PL/PgSQL operator przypisania jest zdefiniowany jako

assign_operator : '='
                | COLON_EQUALS
                ;

Jest to przestarzała funkcja, obecna w kodzie źródłowym od 1998 roku, kiedy została wprowadzona - jak widać w repozytorium PostgreSQL Git.

Począwszy od wersji 9.4 jest oficjalnie udokumentowane.

Ta dziwaczność – posiadania dwóch operatorów do tego samego – została podniesiona na liście użytkowników pgsql, a niektórzy zażądali jej usunięcia, ale nadal jest ona utrzymywana w rdzeniu, ponieważ opiera się na niej uczciwy korpus starszego kodu.

Zobacz tę wiadomość od Toma Lane'a (głównego programisty Pg).

Tak więc, aby odpowiedzieć prosto na twoje pytania:

Czy nie znalazłem w dokumentach jakiejś sekcji, która wspomina i/lub wyjaśnia to?

Nie znalazłeś go, ponieważ był nieudokumentowany, co zostało naprawione w wersji 9.4.

Czy są jakieś znane konsekwencje używania =zamiast :=.

Nie ma żadnych ubocznych konsekwencji używania = , ale powinieneś użyć := do przypisania, aby twój kod był bardziej czytelny i (jako efekt uboczny) bardziej kompatybilny z PL/SQL.

Aktualizacja:w rzadkich sytuacjach mogą wystąpić konsekwencje uboczne (patrz odpowiedź Erwina)

AKTUALIZACJA:odpowiedź zaktualizowana dzięki wkładowi Daniela, Sandy i innych.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Optymalizacja zapytań w PostgreSQL. WYJAŚNIJ podstawy – część 1

  2. Wyzwalacz z dynamiczną nazwą pola

  3. Dodanie kolumny jako klucza obcego powoduje, że kolumna ERROR, do której odwołuje się ograniczenie klucza obcego, nie istnieje

  4. Jak pracować z PGpoint dla Geolokalizacji przy użyciu PostgreSQL?

  5. postgresql - liczba (brak wartości null) każdej kolumny w tabeli