PostgreSQL Antipatterns: CTE x CTE
ΠΡΠ² Π²ΡΡΠ·ΠΊΠ° Ρ ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΡΠ΅ ΡΠ±Π»ΡΡΠΊΠ²Π°ΠΌ Ρ ΡΠΈΡΡΠ°ΡΠΈΠΈ, Π² ΠΊΠΎΠΈΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡΡ ΠΏΠΈΡΠ΅ Π·Π°ΡΠ²ΠΊΠ° ΠΈ ΡΠΈ ΠΌΠΈΡΠ»ΠΈ: Β«Π±Π°Π·Π°ΡΠ° Π΅ ΡΠΌΠ½Π°, ΡΠ°ΠΌΠ° ΡΠ΅ ΡΠ΅ ΡΠΏΡΠ°Π²ΠΈ!Β». Π Π½ΡΠΊΠΎΠΈ ΡΠ»ΡΡΠ°ΠΈ (ΠΎΡΡΠ°ΡΡΠΈ Π·Π°ΡΠ°Π΄ΠΈ Π½Π΅ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΠΈ ΠΎΡΡΠ°ΡΡΠΈ Π·Π°ΡΠ°Π΄ΠΈ ΠΏΡΠ΅ΠΆΠ΄Π΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ) ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΠΏΠΎΡΠ²Π°ΡΠ° Π½Π° βΡΡΠ°Π½ΠΊΠ΅Π½ΡΠ°ΠΉΠ½ΠΈβ. ΠΡΡΠ²ΠΎ ΡΠ΅ Π΄Π°ΠΌ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΡΠ°ΠΊΠ°Π²Π° Π·Π°ΡΠ²ΠΊΠ°: β Π·Π° Π²ΡΡΠΊΠ° ΠΊΠ»ΡΡΠΎΠ²Π° Π΄Π²ΠΎΠΉΠΊΠ° Π½Π°ΠΌΠΈΡΠ°ΠΌΠ΅ Π°ΡΠΎΡΠΈΠΈΡΠ°Π½ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π½Π° ΠΏΠΎΠ»Π΅ΡΠ° WITH RECURSIVE cte_bind AS […]
