Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° слоТных ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ Π½Π΅Ρ€Π°Π·Ρ€Ρ‹Π²Π½ΠΎ связана с написаниСм ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… запросов. Одной ΠΈΠ· самых частых Π·Π°Π΄Π°Ρ‡, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ программисты, являСтся Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ значСниям справочников ΠΈΠ»ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ логичСски связаны с Ρ‚ΠΈΠΏΠΎΠΌ ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅. ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ использованиС синтаксиса ΠΌΠΎΠΆΠ΅Ρ‚ привСсти Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ ошибкам выполнСния, Π½ΠΎ ΠΈ ΠΊ сущСствСнному падСнию ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΌΠ΅Ρ…Π°Π½ΠΈΠΊΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с пСрСчислСниями Π²Π½ΡƒΡ‚Ρ€ΠΈ языка запросов. ΠœΡ‹ рассмотрим различия ΠΌΠ΅ΠΆΠ΄Ρƒ ссылочными Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΈ константами, ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ условий Π² Π±Π»ΠΎΠΊΠ΅ Π“Π”Π• ΠΈ обсудим Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ для обСспСчСния ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ вашСй ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

ПониманиС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ значСния пСрСчислСний Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π‘Π£Π‘Π”, являСтся ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ Π½Π°Π²Ρ‹ΠΊΠΎΠΌ для любого Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° 1Π‘. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ чистый ΠΊΠΎΠ΄, ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ Π»ΠΈΡˆΠ½ΠΈΡ… ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ Ρ‚ΠΈΠΏΠΎΠ² ΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π΄Π°ΠΆΠ΅ Π² высоконагруТСнных систСмах.

БинтаксичСскиС особСнности Ρ€Π°Π±ΠΎΡ‚Ρ‹ с пСрСчислСниями

ΠŸΡ€ΠΈ написании тСкста запроса Π²Π°ΠΆΠ½ΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ Π΄Π²Π° способа обращСния ΠΊ элСмСнтам пСрСчислСния. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΊΠ°ΠΊ прямоС использованиС констант, Ρ‚Π°ΠΊ ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ со ссылками Π½Π° ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ элСмСнты. Π’Ρ‹Π±ΠΎΡ€ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° зависит ΠΎΡ‚ контСкста Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ваша конфигурация.

Для указания ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ значСния Π² тСкстС запроса ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ синтаксис с Π΄Π²ΠΎΠΉΠ½Ρ‹ΠΌ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ. Π­Ρ‚ΠΎ позволяСт компилятору запросов ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ элСмСнт пСрСчислСния Π΅Ρ‰Π΅ Π½Π° этапС ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ запроса ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ. НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ со статусом "ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½", Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Π²ΠΈΠ΄Π° ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅.БтатусыДокумСнтов.ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½ Π² ΠΊΠΎΠ΄Π΅, Π½ΠΎ Π² тСкстС запроса это часто Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ явного привСдСния ΠΈΠ»ΠΈ использования констант.

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² условиях ΠΎΡ‚Π±ΠΎΡ€Π° (WHERE) сравнСниС поля Ρ‚ΠΈΠΏΠ° ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅Π‘ΡΡ‹Π»ΠΊΠ° с константой выполняСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивно. БистСма автоматичСски ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ константу Π² Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Однако, Ссли Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ ссылочноС ΠΏΠΎΠ»Π΅ со строковым прСдставлСниСм ΠΈΠΌΠ΅Π½ΠΈ элСмСнта Π±Π΅Π· явного привСдСния Ρ‚ΠΈΠΏΠΎΠ², запрос Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ ошибкой выполнСния.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Никогда Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ магичСскиС числа (Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ UUID ΠΈΠ»ΠΈ числовыС ΠΊΠΎΠ΄Ρ‹) Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² тСкстС запроса для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ пСрСчислСниям. Π­Ρ‚ΠΈ значСния ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ΅/Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΠΏΠΎΠ»ΠΎΠΌΠΊΠ΅ Π»ΠΎΠ³ΠΈΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ использования Π² условии ΠΎΡ‚Π±ΠΎΡ€Π°. Если Π² вашСй ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ пСрСчислСниС Π’ΠΈΠ΄Ρ‹ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Ρ‚ΠΎ запрос Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ВЫБРАВЬ

РСгистрНакоплСния.Π€ΠΈΠ½Π°Π½ΡΠΎΠ²Ρ‹ΠΉΠ Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.ΠŸΠ΅Ρ€ΠΈΠΎΠ΄,

РСгистрНакоплСния.Π€ΠΈΠ½Π°Π½ΡΠΎΠ²Ρ‹ΠΉΠ Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.Π’ΠΈΠ΄ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

Π˜Π—

РСгистрНакоплСния.Π€ΠΈΠ½Π°Π½ΡΠΎΠ²Ρ‹ΠΉΠ Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ КАК Π€ΠΈΠ½Π°Π½ΡΠΎΠ²Ρ‹ΠΉΠ Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚

Π“Π”Π•

Π€ΠΈΠ½Π°Π½ΡΠΎΠ²Ρ‹ΠΉΠ Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.Π’ΠΈΠ΄ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ = Π—ΠΠΠ§Π•ΠΠ˜Π•(ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅.Π’ΠΈΠ΄Ρ‹ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.ΠŸΡ€ΠΎΠ΄Π°ΠΆΠ°)

ИспользованиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π—ΠΠΠ§Π•ΠΠ˜Π•() являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌ способом указания ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… элСмСнтов Π² динамичСских запросах, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Запрос Π² ΠΊΠΎΠ΄Π΅. Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Ρ‹ нСзависимо ΠΎΡ‚ синонимов, Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅.

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ автоподстановку Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ запросов ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π°: Π½Π°Ρ‡Π½ΠΈΡ‚Π΅ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ имя пСрСчислСния, ΠΈ систСма ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΉ синтаксис с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

Различия ΠΌΠ΅ΠΆΠ΄Ρƒ ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅Π‘ΡΡ‹Π»ΠΊΠ° ΠΈ ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅

Одной ΠΈΠ· самых распространСнных ΠΏΡ€ΠΈΡ‡ΠΈΠ½ ошибок Ρ‚ΠΈΠΏΠ° "НСвСрный Ρ‚ΠΈΠΏ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°" являСтся ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, связанными с пСрСчислСниями. Π’ систСмС Ρ‚ΠΈΠΏΠΎΠ² 1Π‘ сущСствуСт Ρ‚ΠΈΠΏ ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅Π‘ΡΡ‹Π»ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт собой ссылку Π½Π° ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ элСмСнт, ΠΈ Ρ‚ΠΈΠΏ ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся самим Π½Π°Π±ΠΎΡ€ΠΎΠΌ (константой).

Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… хранятся ΠΈΠΌΠ΅Π½Π½ΠΎ ссылки (ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅Π‘ΡΡ‹Π»ΠΊΠ°). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΎΠ±Ρ€Π°Ρ‰Π°Π΅Ρ‚Π΅ΡΡŒ ΠΊ полю Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² запросС, Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ со ссылкой. Π‘Ρ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ эту ссылку Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ с Π΄Ρ€ΡƒΠ³ΠΎΠΉ ссылкой, Π»ΠΈΠ±ΠΎ со ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ константы. ΠŸΡ€ΡΠΌΠΎΠ΅ сравнСниС поля-ссылки с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Ρ‚ΠΈΠΏΠ° "ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅" (Π½Π°Π±ΠΎΡ€ΠΎΠΌ) матСматичСски Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

Битуация услоТняСтся, ΠΊΠΎΠ³Π΄Π° пСрСчислСниС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ Ρ‚ΠΈΠΏ значСния Π² рСгистрС свСдСний ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ составного Ρ‚ΠΈΠΏΠ°. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ явно ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Если Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· ΠΊΠΎΠ΄Π° 1Π‘ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ запроса, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ элСмСнт пСрСчислСния, Π° Π½Π΅ само пСрСчислСниС.

  • πŸ”Ή ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅Π‘ΡΡ‹Π»ΠΊΠ°: Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для хранСния Π΄Π°Π½Π½Ρ‹Ρ… Π² полях Ρ‚Π°Π±Π»ΠΈΡ†, участвуСт Π² соСдинСниях ΠΈ условиях ΠΎΡ‚Π±ΠΎΡ€Π°.
  • πŸ”Ή ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅: Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΊΠΎΠ΄Π΅ для ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ всСм элСмСнтам ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ принадлСТности ΠΊ Π³Ρ€ΡƒΠΏΠΏΠ΅, Π² запросах встрСчаСтся Ρ€Π΅Π΄ΠΊΠΎ.
  • πŸ”Ή Π—ΠΠΠ§Π•ΠΠ˜Π•(): ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ запроса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ имя ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ элСмСнта Π² константу Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° для сравнСния.

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ использовании ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… запросов Ρ‚ΠΈΠΏ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° опрСдСляСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ Π² Π½Π΅Π³ΠΎ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ. Если Π²Ρ‹ помСститС Ρ‚ΡƒΠ΄Π° ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΡ.Π’Π°Π»ΡŽΡ‚Ρ‹.USD, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ станСт Ρ‚ΠΈΠΏΠΎΠΌ ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅Π‘ΡΡ‹Π»ΠΊΠ°. Π­Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ.

πŸ“Š Π‘ ΠΊΠ°ΠΊΠΈΠΌ Ρ‚ΠΈΠΏΠΎΠΌ ошибок ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с пСрСчислСниями Π²Ρ‹ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π΅Ρ‚Π΅ΡΡŒ Ρ‡Π°Ρ‰Π΅?
Ошибка Ρ‚ΠΈΠΏΠ° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°
Запрос Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΡƒΡΡ‚ΡƒΡŽ Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ
Ошибка синтаксиса тСкста запроса
ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌ с пСрСчислСниями Π½Π΅ Π±Ρ‹Π²Π°Π΅Ρ‚

ИспользованиС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π² запросах с пСрСчислСниями

ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ пСрСчислСния ΠΈΠ· внСшнСй Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π½ΡƒΡ‚Ρ€ΡŒ запроса. ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² запроса 1Π‘ позволяСт Π΄Π΅Π»Π°Ρ‚ΡŒ это Π³ΠΈΠ±ΠΊΠΎ ΠΈ бСзопасно, избСгая ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ строк ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… уязвимостСй.

Для этого Π² тСкстС запроса ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ & ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π’ ΠΊΠΎΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Запрос Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ соотвСтствиС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ элСмСнта пСрСчислСния. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° автоматичСски ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ Ρ‚ΠΈΠΏ ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ подставит Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΠ»Π°Π½ выполнСния запроса.

Рассмотрим практичСский ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Допустим, Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ° с ΠΏΠΎΠ»Π΅ΠΌ Π²Ρ‹Π±ΠΎΡ€Π° Π²ΠΈΠ΄Π° Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΈ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚ΠΎΠ² ΠΏΠΎ этому ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΡƒ. ΠœΡ‹ создаСм запрос, Π³Π΄Π΅ Π² условии Π“Π”Π• ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ &Π’ΠΈΠ΄Π”Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π—Π°Ρ‚Π΅ΠΌ Π² ΠΊΠΎΠ΄Π΅ устанавливаСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

Запрос.Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€("Π’ΠΈΠ΄Π”Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ", Π’Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ΅Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅);

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = Запрос.Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ();

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (установит НСопрСдСлСно), запрос Π½Π΅ ΡƒΠΏΠ°Π΄Π΅Ρ‚ с ошибкой, Π° Π²Π΅Ρ€Π½Π΅Ρ‚ ΠΏΡƒΡΡ‚ΡƒΡŽ Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ ΠΈΠ»ΠΈ всС Π΄Π°Π½Π½Ρ‹Π΅, Π² зависимости ΠΎΡ‚ Π»ΠΎΠ³ΠΈΠΊΠΈ условия. Однако, стоит Π±Ρ‹Ρ‚ΡŒ остороТным с составными Ρ‚ΠΈΠΏΠ°ΠΌΠΈ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Если ΠΏΠΎΠ»Π΅ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π΅Ρ‚ составной Ρ‚ΠΈΠΏ, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ пСрСчислСниС ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, БправочникБсылка), ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ значСния пСрСчислСния ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ индСксации Π½Π΅ сработаСт ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎ. ВсСгда свСряйтС Ρ‚ΠΈΠΏΡ‹ ΠΏΠΎΠ»Π΅ΠΉ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ….

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, использованиС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² позволяСт ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ»Π°Π½Ρ‹ выполнСния запросов Π½Π° сторонС Π‘Π£Π‘Π”, Ρ‡Ρ‚ΠΎ критичСски Π²Π°ΠΆΠ½ΠΎ для ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. БтатичСскиС тСксты запросов с "Π·Π°ΡˆΠΈΡ‚Ρ‹ΠΌΠΈ" константами Ρ‡Π΅Ρ€Π΅Π· Π—ΠΠΠ§Π•ΠΠ˜Π•() Ρ‚ΠΎΠΆΠ΅ ΠΊΠ΅ΡˆΠΈΡ€ΡƒΡŽΡ‚ΡΡ, Π½ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π΄Π°ΡŽΡ‚ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅.

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ запроса

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 4

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ способы ΠΈΡ… устранСния

НСсмотря Π½Π° ΠΊΠ°ΠΆΡƒΡ‰ΡƒΡŽΡΡ простоту, Ρ€Π°Π±ΠΎΡ‚Π° с пСрСчислСниями Π² запросах Ρ‚Π°ΠΈΡ‚ Π² сСбС нСсколько ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Ρ… ΠΊΠ°ΠΌΠ½Π΅ΠΉ. Ошибки часто ΠΏΡ€ΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Π±ΠΎΠ΅Π²Ρ‹Ρ… Π±Π°Π·Π°Ρ… с большим объСмом Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ спСцифичСских настройках ΠΏΡ€Π°Π² доступа. Π Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ частыС сцСнарии сбоСв.

ΠŸΠ΅Ρ€Π²Π°Ρ распространСнная ошибка β€” ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π΅ Ρ‚ΠΈΠΏΠ° Число ΠΈΠ»ΠΈ Π‘Ρ‚Ρ€ΠΎΠΊΠ° со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ пСрСчислСния Π±Π΅Π· явного привСдСния. Π­Ρ‚ΠΎ часто случаСтся ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с историчСскими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ настройкС Ρ‚ΠΈΠΏΠΎΠ² Π² рСгистрах свСдСний. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС сСрвСр 1Π‘ выдаст сообщСниС ΠΎ нСвозмоТности сравнСния Ρ€Π°Π·Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ².

Вторая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° связана с использованиСм пСрСчислСний Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Π°Π±Π»Π°Ρ…. НСкоторыС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, срСзы послСдних ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹Ρ…) ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ указания ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΈ нСкоррСктная ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° пСрСчислСния Π² эти ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π΅Π²Π΅Ρ€Π½ΠΎΠΉ Π²Ρ‹Π±ΠΎΡ€ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…, хотя синтаксичСски запрос Π±ΡƒΠ΄Π΅Ρ‚ Π²Π΅Ρ€Π½Ρ‹ΠΌ.

Π’ΠΈΠΏ ошибки ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° возникновСния Бпособ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ
НСвСрный Ρ‚ΠΈΠΏ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅Π‘ΡΡ‹Π»ΠΊΠ° ΠΈ Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π—ΠΠΠ§Π•ΠΠ˜Π•() ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€
ПолС Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ Ошибка Π² ΠΈΠΌΠ΅Π½ΠΈ пСрСчислСния ΠΈΠ»ΠΈ синонимС ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ синонимы Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅
ΠŸΡƒΡΡ‚Π°Ρ Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° НСвСрный ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ элСмСнта ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ элСмСнта Π² Π±Π°Π·Π΅
Ошибка выполнСния Π½Π° SQL ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ Ρ‚ΠΈΠΏΠΎΠ² Π½Π° сторонС Π‘Π£Π‘Π” Π―Π²Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· CAST Π² тСкстС

Π’Π°ΠΊΠΆΠ΅ стоит ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ с ΠΏΡ€Π°Π²Π°ΠΌΠΈ доступа (RLS). Если Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΡ€Π°Π² доступа настроСны ограничСния ΠΏΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ элСмСнтам пСрСчислСния, Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ пытаСтся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ запрос с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρƒ Π½Π΅Π³ΠΎ Π½Π΅Ρ‚ ΠΏΡ€Π°Π², запрос ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ пустой Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±Π΅Π· явных ошибок. Π­Ρ‚ΠΎ часто Π²Π²ΠΎΠ΄ΠΈΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π² Π·Π°Π±Π»ΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅.

Для диагностики Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ консоль запросов ΠΈΠ»ΠΈ встроСнный ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ сформированного SQL-тСкста (для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ) ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° транслируСт вашС условиС Π² язык Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

Π‘Π΅ΠΊΡ€Π΅Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ

ΠŸΡ€ΠΈ частом использовании ΠΎΠ΄Π½ΠΈΡ… ΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ пСрСчислСния Π² Ρ€Π°Π·Π½Ρ‹Ρ… запросах, рассмотритС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ с этими значСниями ΠΈ соСдинСния ΠΏΠΎ Π½Π΅ΠΉ, вмСсто ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ указания условий Π˜Π›Π˜.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ

Π’ высоконагруТСнных систСмах ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ миллисСкунд выполнСния запроса ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ИспользованиС пСрСчислСний Π² условиях ΠΎΡ‚Π±ΠΎΡ€Π°, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, являСтся ΠΎΡ‡Π΅Π½ΡŒ быстрым опСрациям, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ пСрСчислСний ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ ΠΈ Π»Π΅Π³ΠΊΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΡƒΡŽΡ‚ΡΡ. Однако Π΅ΡΡ‚ΡŒ Π½ΡŽΠ°Π½ΡΡ‹, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… слСдуСт Π·Π½Π°Ρ‚ΡŒ.

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ пСрСчислСниС Π² условии соСдинСния (JOIN), ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎ этому полю построСн индСкс. Π₯отя для ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… справочников ΠΈ пСрСчислСний это Π½Π΅ всСгда ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ, ΠΏΡ€ΠΈ соСдинСнии Π±ΠΎΠ»ΡŒΡˆΠΈΡ… рСгистров накоплСния отсутствиС индСкса ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΠΎΠ»Π½ΠΎΠΌΡƒ ΡΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (Table Scan), Ρ‡Ρ‚ΠΎ нСдопустимо.

Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ использования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½Π°Π΄ полями, содСрТащими пСрСчислСния, Π² Π»Π΅Π²ΠΎΠΉ части условия сравнСния. НапримСр, конструкция Π•Π‘Π’Π¬NULL(ΠŸΠΎΠ»Π΅ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΡ, Π—ΠΠΠ§Π•ΠΠ˜Π•(...)) ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠ΅ΡˆΠ°Ρ‚ΡŒ использованию индСкса. Π›ΡƒΡ‡ΡˆΠ΅ Π²Ρ‹Π½ΠΎΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π½Π° Π•Π‘Π’Π¬NULL Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ условиС ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ NULL Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π»ΠΎΠ³ΠΈΠΊΠΈ прилоТСния.

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π²Π°ΠΆΠ½Ρ‹ΠΉ аспСкт β€” использованиС пСрСчислСний Π² Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ…. Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΠΎ полю Ρ‚ΠΈΠΏΠ° пСрСчислСниС выполняСтся эффСктивно, Π½ΠΎ Ссли Π²Ρ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚Π΅ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ имя элСмСнта пСрСчислСния (Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΡ‡ΠΊΡƒ), Π° Π½Π΅ саму ссылку, это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ обращСния ΠΊ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌ, хотя Π² соврСмСнных вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ это ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ динамичСского формирования тСкста запроса со вставкой ΠΈΠΌΠ΅Π½ пСрСчислСний Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡŽ строк. Π­Ρ‚ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСбСзопасно, Π½ΠΎ ΠΈ прСпятствуСт ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΏΠ»Π°Π½ΠΎΠ² запросов, заставляя компилятор ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π·Π°Π½ΠΎΠ²ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ тСкст.

Для максимальной ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ статичСскиС тСксты запросов с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ. Если Π»ΠΎΠ³ΠΈΠΊΠ° Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π²Ρ‹Π±ΠΎΡ€Π° ΠΈΠ· мноТСства Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ пСрСчислСния, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΈΡ… Π² запрос ΠΊΠ°ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π’ (IN), Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π‘Π£Π‘Π” Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ»Π°Π½ выполнСния.

πŸ’‘

ИспользованиС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² запроса вмСсто ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ строк β€” Π³Π»Π°Π²Π½Ρ‹ΠΉ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ бСзопасности ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с пСрСчислСниями Π² 1Π‘.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΠΊΠΎΠ΄Π°

Π—Π°ΠΊΡ€Π΅ΠΏΠΈΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ знания Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² вашСй повсСднСвной Ρ€Π°Π±ΠΎΡ‚Π΅. Π­Ρ‚ΠΈ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ основныС сцСнарии: ΠΎΡ‚ простого ΠΎΡ‚Π±ΠΎΡ€Π° Π΄ΠΎ слоТных вычисляСмых ΠΏΠΎΠ»Π΅ΠΉ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1: ΠžΡ‚Π±ΠΎΡ€ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΠΎ статусу. Π­Ρ‚ΠΎ классичСская Π·Π°Π΄Π°Ρ‡Π°, Π³Π΄Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°.

ВЫБРАВЬ

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.РСализацияВоваровУслуг.Бсылка,

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.РСализацияВоваровУслуг.Π”Π°Ρ‚Π°,

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.РСализацияВоваровУслуг.ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚

Π˜Π—

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.РСализацияВоваровУслуг

Π“Π”Π•

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.РСализацияВоваровУслуг.ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ = ИБВИНА

И Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.РСализацияВоваровУслуг.Π’ΠΈΠ΄ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ = Π—ΠΠΠ§Π•ΠΠ˜Π•(ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅.Π’ΠΈΠ΄Ρ‹ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.Услуга)

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2: ИспользованиС пСрСчислСния Π² вычисляСмом ΠΏΠΎΠ»Π΅. Иногда трСбуСтся вывСсти Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠ΅ имя статуса прямо Π² запросС, хотя ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ это дСлаСтся Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅. Π’ запросС это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ свойству ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅, Π½ΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ рСсурсоСмко.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 3: Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΏΠΎ нСскольким значСниям. Если Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ с нСсколькими статусами, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π’.

Π“Π”Π•

РСгистр.ΠžΡΡ‚Π°Ρ‚ΠΊΠΈ.Бтатус Π’ (

Π—ΠΠΠ§Π•ΠΠ˜Π•(ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅.Бтатусы.Новый),

Π—ΠΠΠ§Π•ΠΠ˜Π•(ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅.Бтатусы.Π’Π Π°Π±ΠΎΡ‚Π΅)

)

Π­Ρ‚ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚, Ρ‡Ρ‚ΠΎ синтаксис 1Π‘ достаточно Π³ΠΈΠ±ΠΎΠΊ, Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ дисциплины ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. ВсСгда провСряйтС ΠΈΠΌΠ΅Π½Π° пСрСчислСний ΠΈ ΠΈΡ… элСмСнтов, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠ° Π² ΠΎΠ΄Π½ΠΎΠΌ символС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС компиляции модуля.

Π›Π°ΠΉΡ„Ρ…Π°ΠΊ для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ

Если запрос Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π—ΠΠΠ§Π•ΠΠ˜Π•(ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅...) Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ ссылку, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ΄ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Π΅Ρ€Π΅Π· Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ()), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΈΠΌΠ΅Π½Π½ΠΎ Π² синтаксисС запроса, Π° Π½Π΅ Π² отсутствии Π΄Π°Π½Π½Ρ‹Ρ….

Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы (FAQ)

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ имя элСмСнта пСрСчислСния ΠΊΠ°ΠΊ строку Π² запросС?

НСт, Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π΅ Ρ‚ΠΈΠΏΠ° ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅Π‘ΡΡ‹Π»ΠΊΠ° со строкой нСльзя. Π­Ρ‚ΠΎ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ Ρ‚ΠΈΠΏΠΎΠ². НСобходимо ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π—ΠΠΠ§Π•ΠΠ˜Π•() ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ запроса, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»Π° ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅.

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли элСмСнт пСрСчислСния Π±Ρ‹Π» ΡƒΠ΄Π°Π»Π΅Π½ ΠΈΠ· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ?

Если Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡΡ‚Π°Π»ΠΈΡΡŒ записи со ссылкой Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ элСмСнт, ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ запроса ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ошибка ΠΈΠ»ΠΈ этот элСмСнт Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ. РСкомСндуСтся провСсти ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ удалСния ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² для очистки ссылок Π½Π° Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ элСмСнты пСрСчислСния.

Как ΡƒΠ·Π½Π°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ элСмСнта пСрСчислСния для SQL-запроса?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ (UUID) Π² запросах 1Π‘ катСгоричСски Π½Π΅ рСкомСндуСтся. Они Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Π±Π°Π·Π°ΠΌΠΈ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ. ВсСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ высокоуровнСвый синтаксис 1Π‘ с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ Π—ΠΠΠ§Π•ΠΠ˜Π•, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ абстрагируСт вас ΠΎΡ‚ физичСского хранСния Π΄Π°Π½Π½Ρ‹Ρ….

ВлияСт Π»ΠΈ использованиС пСрСчислСний Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ выполнСния запроса?

Π‘Π°ΠΌΠΈ ΠΏΠΎ сСбС пСрСчислСния Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΎΡ‡Π΅Π½ΡŒ быстро, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ хранятся ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹Π΅ ссылки. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ со ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ отсутствии индСксов ΠΏΠΎ полям, Π³Π΄Π΅ хранятся эти ссылки, ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ использовании Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½Π°Π΄ этими полями Π² условиях ΠΎΡ‚Π±ΠΎΡ€Π°.