ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ слоТных ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… сцСнариСв ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ создании ΠΎΠ±ΠΌΠ΅Π½ΠΎΠ² Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ систСмами ΠΏΠ΅Ρ€Π΅Π΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ 1Π‘ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ встаСт вопрос ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ. Π’ ΠΌΠΈΡ€Π΅ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… этот Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΡˆΠΈΡ€ΠΎΠΊΠΎ извСстСн ΠΊΠ°ΠΊ GUID ΠΈΠ»ΠΈ UUID, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ‚ΠΈΠΏΠ° Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€. ПониманиС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ, ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ ΠΈ Ρ‚Ρ€Π°Π½ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эти Π΄Π°Π½Π½Ρ‹Π΅ Π² языкС запросов, являСтся критичСски Π²Π°ΠΆΠ½Ρ‹ΠΌ для обСспСчСния цСлостности ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

Ошибки ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с этим Ρ‚ΠΈΠΏΠΎΠΌ часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΈΠ·-Π·Π° нСпонимания Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° хранСния. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ строк ΠΈΠ»ΠΈ чисСл, ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ фиксированный объСм памяти (16 Π±Π°ΠΉΡ‚) ΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ тСкстового прСдставлСния Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ явно ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΎ. Π­Ρ‚ΠΎ создаСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ слоТности ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² сторонниС систСмы, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠ΅ строкового прСдставлСния Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ синтаксис Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΏΠΎΠ»Π΅ΠΉ Ρ‚ΠΈΠΏΠ° Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, рассмотрим особСнности ΠΈΡ… сравнСния Π² условиях Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΈΠ·ΡƒΡ‡ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ привСдСния ΠΊ строковому Π²ΠΈΠ΄Ρƒ нСпосрСдствСнно Π² Ρ‚Π΅Π»Π΅ запроса. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ коснСмся вопросов ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ индСксация ΠΏΠΎ Ρ‚Π°ΠΊΠΈΠΌ полям ΠΈΠΌΠ΅Π΅Ρ‚ свои Π½ΡŽΠ°Π½ΡΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

Бинтаксис Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ поля Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€

Π’ языкС запросов ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ выбираСтся стандартным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈ Π»ΡŽΠ±Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹. Π’Π°ΠΌ Π½Π΅ трСбуСтся ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ прСобразования Π² спискС Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌΡ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ, Ссли ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ†Π΅Π»ΡŒΡŽ являСтся ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° этого Ρ‚ΠΈΠΏΠ° для дальнСйшСй ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² ΠΊΠΎΠ΄Π΅ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ. Достаточно просто ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя поля Π² конструкции ВЫБРАВЬ.

Однако стоит ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Запрос ΠΈΠ»ΠΈ Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°Π˜Π·Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°Π—Π°ΠΏΡ€ΠΎΡΠ°, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ прСдставлСно ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, Π° Π½Π΅ ΠΊΠ°ΠΊ строка. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ прямой Π²Ρ‹Π²ΠΎΠ΄ Ρ‚Π°ΠΊΠΎΠ³ΠΎ значСния Π² ΠΌΠ°ΠΊΠ΅Ρ‚ ΠΈΠ»ΠΈ Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ прСобразования ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ слуТСбного строкового прСдставлСния, ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΎΡ‚ каноничСского Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° UUID, ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ внСшними систСмами.

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

ВЫБРАВЬ

НомСнклатура.Бсылка КАК Бсылка,

НомСнклатура.Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ КАК GUID

Π˜Π—

Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ.НомСнклатура КАК НомСнклатура

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠ»Π΅ Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ выступаСт Π² Ρ€ΠΎΠ»ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°. Π’Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ это ΠΏΠΎΠ»Π΅ присутствуСт Ρƒ всСх ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… ссылочный Ρ‚ΠΈΠΏ, Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½ΠΎ Π½Π΅ отобраТаСтся Π² Ρ„ΠΎΡ€ΠΌΠ΅ элСмСнта явно. Оно являСтся систСмным ΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… всСй ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π°Π·Ρ‹.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ПолС Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ физичСски хранится Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ Π½Π΅ индСксируСтся ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для всСх сцСнариСв. ИспользованиС Π΅Π³ΠΎ Π² условиях Π“Π”Π• для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π²Ρ‹Π±ΠΎΡ€ΠΎΠΊ Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΠ»Π°Π½Π° выполнСния ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ запроса.

πŸ’‘

ВсСгда провСряйтС Ρ‚ΠΈΠΏ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния Π² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ΅. Если Π²Ρ‹ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚Π΅ строку, Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, это ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΏΡ€ΠΈ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ записи Π² Ρ„Π°ΠΉΠ».

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ GUID Π² строку Π²Π½ΡƒΡ‚Ρ€ΠΈ запроса

НаиболСС частая Π·Π°Π΄Π°Ρ‡Π° ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ β€” это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΡ… строковоС прСдставлСниС нСпосрСдствСнно Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π‘Π£Π‘Π” ΠΈΠ»ΠΈ Π΄Π²ΠΈΠΆΠΊΠ° запросов 1Π‘. Π­Ρ‚ΠΎ трСбуСтся для Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² XML, JSON ΠΈΠ»ΠΈ для сопоставлСния с записями Π² Π²Π½Π΅ΡˆΠ½ΠΈΡ… Π±Π°Π·Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Π³Π΄Π΅ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ слуТит строка Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° UUID. Π’ языкС запросов 1Π‘ для этой Ρ†Π΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ встроСнная функция Π•Π‘Π’Π¬NULL Π² связкС с ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠΎΠ², ΠΎΠ΄Π½Π°ΠΊΠΎ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌ способом являСтся использованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ БВРОКА ΠΈΠ»ΠΈ явноС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.

Начиная с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… вСрсий ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, стало Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠŸΠ Π•Π”Π‘Π’ΠΠ’Π›Π•ΠΠ˜Π• ΠΈΠ»ΠΈ спСциализированныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ, Π½ΠΎ самым ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ пСрСносимым способом остаСтся ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° ΠΊ строкС Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ КАК БВРОКА ΠΈΠ»ΠΈ использованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ЀОРМАВ Π² ΠΊΠΎΠ΄Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Ссли Π²Π°ΠΌ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² тСкстС запроса (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для объСдинСния Π² ΠžΠ‘ΠͺΠ•Π”Π˜ΠΠ˜Π’Π¬ со строковой Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ), слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ БВРОКА.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ запроса, Π³Π΄Π΅ ΠΌΡ‹ сразу ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ строковоС прСдставлСниС GUID Π² стандартном Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅:

ВЫБРАВЬ

НомСнклатура.НаимСнованиС,

БВРОКА(НомСнклатура.Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€) КАК Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²ΠΎΠΉGUID

Π˜Π—

Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ.НомСнклатура КАК НомСнклатура

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π»ΠΈΡˆΠ½ΠΈΡ… Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² ΠΊΠΎΠ΄Π΅ 1Π‘ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ Π·Π°Π΄Π°Ρ‡Ρƒ форматирования Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ выполнСния запросов. Π‘Ρ‚ΠΎΠΈΡ‚ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ строковоС прСдставлСниС Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ большС мСста Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ (36 символов ΠΏΡ€ΠΎΡ‚ΠΈΠ² 16 Π±Π°ΠΉΡ‚), поэтому Π½Π΅ стоит Π·Π»ΠΎΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡ‚ΡŒ этим ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€ΠΊΠ΅ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² строк, Ссли строка Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ.

ВСхничСскиС Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°

Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ 1Π‘ Ρ…Ρ€Π°Π½ΠΈΡ‚ GUID ΠΊΠ°ΠΊ 16-Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ массив. ΠŸΡ€ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ Π² строку Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ дСфисы ΠΈ происходит ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ Π±Π°ΠΉΡ‚ΠΎΠ² Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠ΅ прСдставлСниС. ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ Π±Π°ΠΉΡ‚ (Big Endian ΠΈΠ»ΠΈ Little Endian) ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ настроСк Π‘Π£Π‘Π”, поэтому для ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠ±ΠΌΠ΅Π½ΠΎΠ² Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стандартныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Π° Π½Π΅ Ρ€ΡƒΡ‡Π½ΡƒΡŽ сборку строки.

Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΈ сравнСниС ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ²

ИспользованиС поля Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π² условиях ΠΎΡ‚Π±ΠΎΡ€Π° Π“Π”Π• Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ особого внимания ΠΊ Ρ‚ΠΈΠΏΠ°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Если Π²Ρ‹ сравниваСтС ΠΏΠΎΠ»Π΅ Ρ‚ΠΈΠΏΠ° Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ со строковой константой, запрос ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΡΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΈΠ»ΠΈ Π²Ρ‹Π΄Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ Ρ‚ΠΈΠΏΠΎΠ², Π² зависимости ΠΎΡ‚ контСкста ΠΈ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ являСтся использованиС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² запроса с явно ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ.

ΠŸΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ условия сравнСния ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ΅ Π² запрос, являСтся ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€. Если Ρƒ вас Π΅ΡΡ‚ΡŒ строковоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ ΠΈΠ· внСшнСго источника, Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€() Π² ΠΊΠΎΠ΄Π΅ ΠΏΠ΅Ρ€Π΅Π΄ установкой ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. ΠŸΡ€ΡΠΌΠΎΠ΅ сравнСниС Π² тСкстС запроса Π²ΠΈΠ΄Π° Π“Π”Π• Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ = "Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅-строки" являСтся ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹ΠΌ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ установки ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΈ использования Π΅Π³ΠΎ Π² запросС:

  • πŸ”Ή Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ запроса ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ тСкст запроса с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ &ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€GUID.
  • πŸ”Ή Π’ ΠΊΠΎΠ΄Π΅ 1Π‘ создайтС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: Новый Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€("72300000-0000-0000-0000-000000000000").
  • πŸ”Ή УстановитС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€: Запрос.Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€("ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€GUID", Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅GUID).
  • πŸ”Ή Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ запрос, Π³Π΄Π΅ условиС выглядит ΠΊΠ°ΠΊ Π“Π”Π• Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ = &ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€GUID.

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

πŸ’‘

ВсСгда ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚Π΅ внСшниС строковыС GUID ΠΊ Ρ‚ΠΈΠΏΡƒ Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π² ΠΊΠΎΠ΄Π΅ ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ Π² запрос. НС ΠΏΠΎΠ»Π°Π³Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π° автоматичСскоС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ условия Π“Π”Π•.

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ: GUID vs Бсылка

Часто Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ вопросом: Ρ‡Ρ‚ΠΎ эффСктивнСС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для связи Ρ‚Π°Π±Π»ΠΈΡ† ΠΈΠ»ΠΈ внСшнСй ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ β€” систСмный Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈΠ»ΠΈ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ Бсылку 1Π‘? Бсылка Π² 1Π‘ являСтся составным ΠΊΠ»ΡŽΡ‡ΠΎΠΌ, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π²ΠΈΠ΄Π° ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΈ ΠΎΠ½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° Π΄Π²ΠΈΠΆΠΊΠΎΠΌ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ для быстрого доступа. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя, Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ β€” это простоС ΠΏΠΎΠ»Π΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ проиндСксировано ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.

Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ сравнСниС основных характСристик использования этих ΠΏΠΎΠ»Π΅ΠΉ Π² запросах:

Π₯арактСристика Бсылка (Ref) Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ (GUID)
Π Π°Π·ΠΌΠ΅Ρ€ Π² Π‘Π” 8-16 Π±Π°ΠΉΡ‚ (зависит ΠΎΡ‚ Π‘Π£Π‘Π”) 16 Π±Π°ΠΉΡ‚ (фиксировано)
Π˜Π½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡ АвтоматичСская (кластСрный индСкс) Π’Ρ€Π΅Π±ΡƒΠ΅Ρ‚ создания ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ индСкса
Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Уникальна Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… Π²ΠΈΠ΄Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½ΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Π° (тСорСтичСски)
Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ JOIN Максимальная (ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ ядром) Высокая (ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ индСкса)

Из Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ для Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… связСй Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 1Π‘ использованиС Бсылки всСгда ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅. Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ слСдуСт ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ прСимущСствСнно для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с внСшними систСмами, Π³Π΄Π΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ссылочный Ρ‚ΠΈΠΏ 1Π‘, ΠΈΠ»ΠΈ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² синхронизации распрСдСлСнных ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Π±Π°Π· (Π Π˜Π‘).

Если Π²Ρ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ часто Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ GUID, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ создайтС индСкс ΠΏΠΎ этому полю Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅. Π‘Π΅Π· индСкса запрос с условиСм ΠΏΠΎ GUID Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΠ΅ сканированиС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Ρ‡Ρ‚ΠΎ Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΌΠ°Ρ… (ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ записСй) ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ сущСствСнному падСнию ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ систСмы.

β˜‘οΈ ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с GUID

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

Π Π°Π±ΠΎΡ‚Π° с NULL значСниями ΠΈ пустыми GUID

Π’Π°ΠΆΠ½Ρ‹ΠΌ аспСктом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ часто ΡƒΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ΠΈΠ· Π²ΠΈΠ΄Ρƒ, являСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ наличия пустых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. ПолС Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL (НСопрСдСлСно), Ссли ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΅Ρ‰Π΅ Π½Π΅ записан Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Ссли ΠΏΠΎΠ»Π΅ Π½Π΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ. Π’ запросах это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ явно, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π•Π‘Π’Π¬NULL, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ строк Π² Π²Ρ‹Π±ΠΎΡ€ΠΊΠ΅ ΠΈΠ»ΠΈ ошибок ΠΏΡ€ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ Ρ‚ΠΈΠΏΠΎΠ².

Битуация усугубляСтся Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ "пустой" GUID (состоящий ΠΈΠ· ΠΎΠ΄Π½ΠΈΡ… Π½ΡƒΠ»Π΅ΠΉ: 00000000-0000-0000-0000-000000000000) ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL β€” это Ρ€Π°Π·Π½Ρ‹Π΅ сущности. ΠŸΡƒΡΡ‚ΠΎΠΉ GUID являСтся Π²Π°Π»ΠΈΠ΄Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠ°, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ NULL ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ отсутствиС значСния. ΠŸΡ€ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с внСшними систСмами часто трСбуСтся ΠΏΠΎΠ΄ΠΌΠ΅Π½ΡΡ‚ΡŒ NULL Π½Π° пустой GUID ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Π² зависимости ΠΎΡ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅ΠΉ стороны.

Для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ:

ВЫБРАВЬ

Π•Π‘Π’Π¬NULL(НомСнклатура.Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, &ΠŸΡƒΡΡ‚ΠΎΠΉGUID) КАК GUID

Π˜Π—

Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ.НомСнклатура КАК НомСнклатура

Π—Π΄Π΅ΡΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ &ΠŸΡƒΡΡ‚ΠΎΠΉGUID Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ установлСн Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Новый Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€(). Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΌ Π½Π°Π±ΠΎΡ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΡƒΡŽ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π² JSON ΠΈΠ»ΠΈ XML.

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

ГСнСрация Π½ΠΎΠ²Ρ‹Ρ… GUID Π² запросах ΠΈ ΠΊΠΎΠ΄Π΅

Π₯отя язык запросов 1Π‘ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…, Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… сцСнариях (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ использовании Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ† ΠΈΠ»ΠΈ запросов ΠΊ рСгистрам свСдСний Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ записи Ρ‡Π΅Ρ€Π΅Π· встроСнныС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹) ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ гСнСрация Π½ΠΎΠ²Ρ‹Ρ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ². Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ стандартный SQL-синтаксис Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ NEWID() ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ² Π½Π΅ поддСрТиваСтся Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² тСкстС запроса 1Π‘ ΠΊΠ°ΠΊ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² спискС ΠΏΠΎΠ»Π΅ΠΉ ВЫБРАВЬ.

ГСнСрация Π½ΠΎΠ²Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π½Π° сторонС ΠΊΠΎΠ΄Π° 1Π‘ ΠΏΠ΅Ρ€Π΅Π΄ вставкой Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ записью ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ конструктор Новый Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€(). Если Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ соСдинСния, сдСлайтС это Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΏΠ΅Ρ€Π΅Π΄ записью Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

Однако, сущСствуСт нюанс ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с запросами ΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌ. Если Π²Ρ‹ создаСтС Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Ρ‡Π΅Ρ€Π΅Π· ВЫБРАВЬ ... Π’_tmpΠ’Π°Π±Π»ΠΈΡ†Π°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ GUID для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΠ•Π‘Π’ΠΠΠ”ΠΠ Π’ΠΠ«Π™Π’Π˜Π” Π² сочСтании с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ строки, Π½ΠΎ это Π½Π΅ даст истинный случайный GUID. Для получСния истинно случайных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π² ΠΊΠΎΠ΄Π΅:

  • πŸ”Έ Π‘Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.
  • πŸ”Έ Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ Ρ‚ΠΈΠΏΠ° Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€.
  • πŸ”Έ ΠŸΡ€ΠΎΠΉΠ΄ΠΈΡ‚Π΅ΡΡŒ Ρ†ΠΈΠΊΠ»ΠΎΠΌ ΠΏΠΎ строкам ΠΈ присвойтС Новый Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€().
  • πŸ”Έ Π—Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ для использования Π² запросС.

Π’Π°ΠΊΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΡΠ»ΡƒΡ‡Π°ΠΉΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ², Ρ‡Ρ‚ΠΎ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ для прСдотвращСния ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ ΠΏΡ€ΠΈ слиянии Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… источников.

πŸ“Š Π“Π΄Π΅ Π²Ρ‹ Ρ‡Π°Ρ‰Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ GUID Π² 1Π‘?
Для ΠΎΠ±ΠΌΠ΅Π½Π° с сайтом
Для Π Π˜Π‘ (РаспрСдСлСнной Π±Π°Π·Ρ‹)
Для внСшнСй Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΈ
ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ

ЧастыС ошибки ΠΈ способы ΠΈΡ… устранСния

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

Π₯отя стандарт UUID нСчувствитСлСн ΠΊ рСгистру, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ внСшниС систСмы ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ рСгистрС, Π° 1Π‘ ΠΏΡ€ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΈΠΆΠ½ΠΈΠΉ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΈΠ»ΠΈ отсутствиС Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобок {} Π²ΠΎΠΊΡ€ΡƒΠ³ GUID ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ парсинга ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈΠ· строки. ВсСгда выполняйтС очистку строки ΠΎΡ‚ Π»ΠΈΡˆΠ½ΠΈΡ… символов ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ.

Другая частая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° связана с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΈ соСдинСнии (JOIN) Ρ‚Π°Π±Π»ΠΈΡ† ΠΏΠΎ полю GUID, Ссли Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ† отсутствуСт индСкс. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ соСдинСний ΠΏΠΎ ссылкам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ автоматичСски, соСдинСния ΠΏΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ полям Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ контроля индСксов. Если Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ запрос "висит" ΠΏΡ€ΠΈ соСдинСнии ΠΏΠΎ GUID, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ свойства поля Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² Π½ΠΎΠ²Ρ‹Ρ… вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘. ВсСгда ΡΠ²Π΅Ρ€ΡΠΉΡ‚Π΅ΡΡŒ с синтаксис-ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΎΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ вСрсии вашСй ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, особСнно ΠΏΡ€ΠΈ использовании Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ прСобразования Ρ‚ΠΈΠΏΠΎΠ².

Для устранСния ошибок рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ Π² Π±Π»ΠΎΠΊΠΈ ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°...Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π»Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Π°Π»ΠΈΠ΄Π½Ρ‹ΠΌΠΈ GUID, ΠΈ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°, вмСсто Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ‚ΡŒ скрипту Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒΡΡ.

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ GUID Π² качСствС основного ΠΊΠ»ΡŽΡ‡Π° Π² рСгистрС свСдСний?

ВСхничСски это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚ΠΈΠΏ Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ поддСрТиваСтся Π² качСствС измСрСния. Однако это Π½Π΅ рСкомСндуСтся Π΄Π΅Π»Π°Ρ‚ΡŒ Π±Π΅Π· вСских ΠΏΡ€ΠΈΡ‡ΠΈΠ½, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ индСксов ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΠ². Π›ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стандартныС ссылки ΠΈΠ»ΠΈ числовыС ΠΊΠΎΠ΄Ρ‹, Π° GUID Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² качСствС Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π°.

Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ GUID ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² распрСдСлСнной Π±Π°Π·Π΅?

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с распрСдСлСнными Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠŸΠ»Π°Π½Ρ‹ΠžΠ±ΠΌΠ΅Π½Π° ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ получСния ΡƒΠ·Π»ΠΎΠ². ΠŸΡ€ΡΠΌΠΎΠΉ Π²Ρ‹Π±ΠΎΡ€ GUID ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌ Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° получСния Π΄Π°Π½Π½Ρ‹Ρ…. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ синхронизации для получСния Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ².

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈ Ref Π² SQL?

Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ SQL Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… 1Π‘ ΠΏΠΎΠ»Π΅ Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ хранится ΠΊΠ°ΠΊ UUID ΠΈΠ»ΠΈ BINARY(16), Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Ref (ссылка) прСдставляСт собой ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ _RRef (Ρ‚ΠΈΠΏ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°) ΠΈ _IDRRef (ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€). Π­Ρ‚ΠΎ Ρ€Π°Π·Π½Ρ‹Π΅ физичСскиС структуры хранСния.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ запрос Π½Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ запись ΠΏΠΎ GUID, хотя ΠΎΠ½Π° Π΅ΡΡ‚ΡŒ?

НаиболСС вСроятная ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° β€” нСсоотвСтствиС Ρ‚ΠΈΠΏΠΎΠ². Π’Ρ‹ сравниваСтС ΠΏΠΎΠ»Π΅ Ρ‚ΠΈΠΏΠ° Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ со строкой. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ запроса ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, Π° Π½Π΅ Π‘Ρ‚Ρ€ΠΎΠΊΠ°, Π΄Π°ΠΆΠ΅ Ссли содСрТимоС Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ совпадаСт.

МоТно Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ GUID Ρƒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°?

НСт, свойство Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ присваиваСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ ΠΏΡ€ΠΈ Π΅Π³ΠΎ создании ΠΈ являСтся нСизмСняСмым Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ всСго ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π°Π·Π΅. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π· Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Π΅ дСйствия с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ Π½Π΅ рСкомСндуСтся ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡŒ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ….