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

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

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

Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ объявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

ΠŸΡ€ΠΈ объявлСнии ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² ΠΊΠΎΠ΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ явно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ‹. Бинтаксис Π‘Ρ‚Ρ€ΠΎΠΊΠ°(N) позволяСт Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ количСство символов. Если пСрСмСнная объявлСна просто ΠΊΠ°ΠΊ Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π±Π΅Π· указания Π΄Π»ΠΈΠ½Ρ‹, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° выдСляСт Π±ΡƒΡ„Π΅Ρ€ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 256 символов, хотя Π² соврСмСнных вСрсиях это ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ часто игнорируСтся Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ динамичСского выдСлСния памяти.

Однако, Ссли Π²Ρ‹ ТСстко Π·Π°Π΄Π°Π»ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠŸΠ΅Ρ€Π΅ΠΌ ΠœΠΎΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ° Π‘Ρ‚Ρ€ΠΎΠΊΠ°(10), Ρ‚ΠΎ присвоСниС значСния "Π”Π²Π΅Π½Π°Π΄Ρ†Π°Ρ‚ΡŒ" ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ останутся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 10 символов. Π­Ρ‚ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ часто становится источником Ρ‚Ρ€ΡƒΠ΄Π½ΠΎΡƒΠ»ΠΎΠ²ΠΈΠΌΡ‹Ρ… Π±Π°Π³ΠΎΠ², ΠΊΠΎΠ³Π΄Π° Π΄Π°Π½Π½Ρ‹Π΅ "ΠΎΠ±Ρ€Π΅Π·Π°ΡŽΡ‚ΡΡ" silently (Π±Π΅Π· сообщСния ΠΎΠ± ошибкС). Π―Π²Π½ΠΎΠ΅ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ‹ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° этапС присваивания.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с внСшними источниками Π΄Π°Π½Π½Ρ‹Ρ… (HTTP-запросы, Ρ„Π°ΠΉΠ»Ρ‹) всСгда провСряйтС Ρ€Π΅Π°Π»ΡŒΠ½ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ incoming-строки ΠΏΠ΅Ρ€Π΅Π΄ присваиваниСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ, ΠΈΠ½Π°Ρ‡Π΅ потСря ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½Π°.

Для измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² runtime (Π²ΠΎ врСмя выполнСния) Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ², хотя прямоС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° Π΄Π»ΠΈΠ½Ρ‹ Ρƒ объявлСнной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Π›ΠΎΠ³ΠΈΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ созданиС Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π±ΡƒΡ„Π΅Ρ€ΠΎΠ² большСй Смкости для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… тСкстов ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΡ… сохранСниСм.

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚ΠΈΠΏ "Π‘Ρ‚Ρ€ΠΎΠΊΠ°" Π±Π΅Π· указания Π΄Π»ΠΈΠ½Ρ‹ для Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ тСкстов нСизвСстного Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ случайного усСчСния Π΄Π°Π½Π½Ρ‹Ρ….

Настройка Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠ² Π² ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅

НаиболСС частый сцСнарий измСнСния Π΄Π»ΠΈΠ½Ρ‹ строки касаСтся ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…. Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ свойство Π”Π»ΠΈΠ½Π° Ρƒ любого строкового Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π° справочника, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈΠ»ΠΈ рСгистра. Π­Ρ‚ΠΎ дСйствиС влияСт Π½Π° структуру Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… (SQL), поэтому Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ остороТности.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ измСнСния выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Π½Π°ΠΉΡ‚ΠΈ Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡƒ "Π Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹" ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ†Π΅Π»Π΅Π²ΠΎΠ΅ ΠΏΠΎΠ»Π΅. Π’ ΠΏΠ°Π»ΠΈΡ‚Ρ€Π΅ свойств измСняСтся ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ "Π”Π»ΠΈΠ½Π°". ПослС сохранСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎΡ‚ процСсс ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ врСмя Π² зависимости ΠΎΡ‚ объСма Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

  • πŸ” Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ бСсшовно для ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… записСй, заполняя Π½ΠΎΠ²Ρ‹Π΅ Π±Π°ΠΉΡ‚Ρ‹ нулями ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ.
  • πŸ“‰ УмСньшСниС Π΄Π»ΠΈΠ½Ρ‹ опасно: Ссли Π² Π±Π°Π·Π΅ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ записи, Π³Π΄Π΅ тСкст Π΄Π»ΠΈΠ½Π½Π΅Π΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π»ΠΈΠΌΠΈΡ‚Π°, Π΄Π°Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ усСчСны Π±Π΅Π·Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π½ΠΎ.
  • πŸ’Ύ ИзмСнСниС структуры Π²Π»Π΅Ρ‡Π΅Ρ‚ Π·Π° собой Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° врСмя обновлСния схСмы Π‘Π”.

БущСствуСт нюанс с индСксациСй. Если ΠΏΠΎ строковому полю построСн индСкс, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ Π΄Π»ΠΈΠ½Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ пСрСстройки индСкса, Ρ‡Ρ‚ΠΎ сущСствСнно Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ процСсс обновлСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π’ высоконагруТСнных систСмах Ρ‚Π°ΠΊΠΈΠ΅ измСнСния Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Π² Π½Π΅Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ врСмя.

πŸ“Š Как Π²Ρ‹ Ρ‡Π°Ρ‰Π΅ всСго мСняСтС Π΄Π»ΠΈΠ½Ρƒ строки?
Π’ ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ
Π§Π΅Ρ€Π΅Π· ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ обновлСния
ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ созданиСм Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π°
НС мСняю, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΡƒΡŽ строку

ДинамичСскоС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ΄

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

ΠžΠ³Ρ€Π’ΠΈΠΏ = Новый ОписаниСВипов("Π‘Ρ‚Ρ€ΠΎΠΊΠ°", , Новый ΠšΠ²Π°Π»ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹Π‘Ρ‚Ρ€ΠΎΠΊΠΈ(50, ДопустимаяДлина.Π’ΠΎΡ‡Π½ΠΎ));

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Π€ΠΎΡ€ΠΌΡ‹.ВипЗначСния = ΠžΠ³Ρ€Π’ΠΈΠΏ;

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

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠšΠ²Π°Π»ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, установлСнныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅, Π½Π΅ Π·Π°Ρ‰ΠΈΡ‰Π°ΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ записи Ρ‡Π΅Ρ€Π΅Π· прямыС запросы ΠΊ Π±Π°Π·Π΅ ΠΈΠ»ΠΈ внСшниС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² интСрфСйсС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π Π°Π±ΠΎΡ‚Π° со строками Π² запросах

Π―Π·Ρ‹ΠΊ запросов 1Π‘ ΠΈΠΌΠ΅Π΅Ρ‚ свои особСнности Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строковыми Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°ΠΌΠΈ ΠΈ полями. ΠŸΡ€ΠΈ использовании конструкции Π’Π«Π ΠΠ–Π•ΠΠ˜Π• ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Ρ‚ΠΈΠΏΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ запроса, Π΄Π»ΠΈΠ½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ строки опрСдСляСтся ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ Π‘Π£Π‘Π”. Π’Π°ΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ объСдинСнии Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² (ΠžΠ‘ΠͺΠ•Π”Π˜ΠΠ˜Π’Π¬) Ρ‚ΠΈΠΏΡ‹ ΠΈ Π΄Π»ΠΈΠ½Ρ‹ ΠΏΠΎΠ»Π΅ΠΉ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ.

Если Π²Ρ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚Π΅ ΠΏΠΎΠ»Π΅ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Π΅Π³ΠΎ Π΄Π»ΠΈΠ½Π° фиксирована схСмой Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Но Ссли Π²Ρ‹ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ»Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ "ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π°" КАК ПолС1, систСма сама ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ Π΅Π³ΠΎ Ρ‚ΠΈΠΏ. Для явного управлСния ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ², хотя синтаксис 1Π‘ Π½Π΅ всСгда позволяСт явно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки прямо Π² тСкстС запроса Ρ‚Π°ΠΊ ΠΆΠ΅ Π³ΠΈΠ±ΠΊΠΎ, ΠΊΠ°ΠΊ Π² SQL.

Битуация ПовСдСниС систСмы РСкомСндация
ОбъСдинСниС строк Ρ€Π°Π·Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ Π’ΠΈΠΏ приводится ΠΊ максимальной Π΄Π»ΠΈΠ½Π΅ Π‘Π»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ индСксов
Π—Π°ΠΏΠΈΡΡŒ Π² Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π”Π»ΠΈΠ½Π° фиксируСтся ΠΏΡ€ΠΈ создании Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ запас ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅ (+10-20%)
Π›ΠΈΡ‚Π΅Ρ€Π°Π» Π² запросС ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ΡΡ ΠΏΠΎ содСрТимому Π˜Π·Π±Π΅Π³Π°Ρ‚ΡŒ ТСсткой Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ²

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π’Π Π•ΠœΠ•ΠΠΠ«Π• Π’ΠΠ‘Π›Π˜Π¦Π« Π² запросах, структура Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ опрСдСляСтся ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΎΠΉ. Если Π² ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… вставках попадутся строки Π΄Π»ΠΈΠ½Π½Π΅Π΅, Ρ‡Π΅ΠΌ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π²Ρ‹Π±ΠΎΡ€ΠΊΠ΅, Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ошибка выполнСния запроса ΠΎ нСсоотвСтствии Ρ‚ΠΈΠΏΠΎΠ². Π­Ρ‚ΠΎ частая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ².

Ошибка "Π’ΠΈΠΏ значСния Π½Π΅ соотвСтствуСт Ρ‚ΠΈΠΏΡƒ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ"

Π’ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ строку Π΄Π»ΠΈΠ½ΠΎΠΉ 100 символов Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, Π³Π΄Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ° Π±Ρ‹Π»Π° создана ΠΏΠ΅Ρ€Π²ΠΎΠΉ записью Π΄Π»ΠΈΠ½ΠΎΠΉ 50 символов. РСшСниС: искусствСнно Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠΌ.

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ Π‘Π£Π‘Π” ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

Π₯отя ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ абстрагируСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π‘Π£Π‘Π” (MS SQL, PostgreSQL, Oracle), физичСскиС ограничСния ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚. Π’ MS SQL, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π°Π·ΠΌΠ΅Ρ€ строки Π² страницС Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ 8060 Π±Π°ΠΉΡ‚Π°ΠΌΠΈ. Если сумма Π΄Π»ΠΈΠ½ всСх строковых ΠΏΠΎΠ»Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, запись ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒΡΡ Π² страницу, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ использованию страниц пСрСполнСния ΠΈ падСнию ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

Π˜Π½Π΄Π΅ΠΊΡΡ‹ ΠΏΠΎ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌ строкам β€” это ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ Ρ‚Π΅ΠΌΠ° для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ индСкса ΠΏΠΎ полю НаимСнованиС Π΄Π»ΠΈΠ½ΠΎΠΉ 250 символов ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСэффСктивным. Π‘Π£Π‘Π” часто ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ прСфикс строки (ΠΏΠ΅Ρ€Π²Ρ‹Π΅ N символов). Π’ 1Π‘ это настраиваСтся Ρ‡Π΅Ρ€Π΅Π· свойство Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π° Π˜Π½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ "По ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ символам".

  • πŸš€ ΠŸΠΎΠ»Π½ΠΎΡ‚Π΅ΠΊΡΡ‚ΠΎΠ²Ρ‹ΠΉ поиск Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ быстрСС Π½Π° полях с Ρ€Π°Π·ΡƒΠΌΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½ΠΎΠΉ, Ρ‡Π΅ΠΌ Π½Π° полях Ρ‚ΠΈΠΏΠ° Π₯ранСниСНастройки.
  • πŸ—„οΈ Поля Ρ‚ΠΈΠΏΠ° Π₯ранСниСНастройки ΠΈΠ»ΠΈ ΠœΠ°ΠΊΠ΅Ρ‚ выносятся Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Ρ€Π°Π·Π΄ΡƒΠ²Π°Ρ‚ΡŒ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.
  • βš–οΈ Баланс ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Π»ΠΈΠ½ΠΎΠΉ строки ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ: Ρ‡Π΅ΠΌ ΠΊΠΎΡ€ΠΎΡ‡Π΅ строка, Ρ‚Π΅ΠΌ большС записСй помСщаСтся Π² кэш памяти.

ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ Π½Π° 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8.3 ΠΈ Π²Ρ‹ΡˆΠ΅, ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ хранСния строк стал Π±ΠΎΠ»Π΅Π΅ эффСктивным, Π½ΠΎ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡ΠΊΠ° ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ поля "Π½Π° Π³Π»Π°Π·" с запасом Π² 1000 символов всС Π΅Ρ‰Π΅ Π²Ρ€Π΅Π΄ΠΈΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π±Π°Π·. Нормализация Π΄Π»ΠΈΠ½Ρ‹ ΠΏΠΎΠ»Π΅ΠΉ β€” Ρ‡Π°ΡΡ‚ΡŒ процСсса ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ.

πŸ’‘

ΠžΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Π°Ρ Π΄Π»ΠΈΠ½Π° строкового поля Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌΡƒ бизнСс-Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΡŽ, Π° Π½Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ "Ρ‡Π΅ΠΌ большС, Ρ‚Π΅ΠΌ Π»ΡƒΡ‡ΡˆΠ΅", Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ индСксов.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок пСрСполнСния

НСсмотря Π½Π° всС ΠΌΠ΅Ρ€Ρ‹ прСдостороТности, ошибки пСрСполнСния строки ΡΠ»ΡƒΡ‡Π°ΡŽΡ‚ΡΡ. Π§Π°Ρ‰Π΅ всСго это происходит ΠΏΡ€ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с внСшними систСмами, Π³Π΄Π΅ ΠΊΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΡΠ»Π°Ρ‚ΡŒ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½ΠΎΠΉ 500 символов, Π° Ρƒ вас Π² Π±Π°Π·Π΅ ΠΏΠΎΠ»Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ 150. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° выдаст ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Π’ΠΈΠΏΠ° ΠΈΠ»ΠΈ ΠΎΡˆΠΈΠ±ΠΊΡƒ записи.

Для прСдотвращСния Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠΉ остановки programu Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°...Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. Π’ Π±Π»ΠΎΠΊΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ усСчСния строки Π΄ΠΎ допустимой Π΄Π»ΠΈΠ½Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π›Π΅Π²() ΠΈΠ»ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ошибкС Π² ΠΆΡƒΡ€Π½Π°Π» рСгистрации.

ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°

Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ.НомСнклатура.Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒΠ­Π»Π΅ΠΌΠ΅Π½Ρ‚().НаимСнованиС = Π”Π»ΠΈΠ½Π½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°Π˜Π·Π’Π½Π΅ΡˆΠ½Π΅Π³ΠΎΠ˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠ°;

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

// УсСкаСм строку Π΄ΠΎ бСзопасной Π΄Π»ΠΈΠ½Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 150)

БСзопаснаяБтрока = Π›Π΅Π²(Π”Π»ΠΈΠ½Π½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°Π˜Π·Π’Π½Π΅ΡˆΠ½Π΅Π³ΠΎΠ˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠ°, 150);

Π—Π°ΠΏΠΈΡΡŒΠ–ΡƒΡ€Π½Π°Π»Π°Π Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ(...);

ΠšΠΎΠ½Π΅Ρ†ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠΈ;

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ усСчСнии строк ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ ΠΏΡƒΡ‚Π΅ΠΌ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ Ρ€Π°Π·Ρ€Ρ‹Π²Π°Π΅Ρ‚Π΅ Π²Π°ΠΆΠ½Ρ‹Π΅ смысловыС части Π΄Π°Π½Π½Ρ‹Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π΅ ΠΎΠ±Ρ€Π΅Π·Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ½Π΅Ρ† Π°Ρ€Ρ‚ΠΈΠΊΡƒΠ»Π° ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΡƒΡŽ сумму ΠΊΠΎΠ΄Π°).

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

МоТно Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки Π² Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΉ Π±Π°Π·Π΅ Π±Π΅Π· остановки ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ?

НСт, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ структуры ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… (Π² Ρ‚ΠΎΠΌ числС Π΄Π»ΠΈΠ½Ρ‹ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠ²) Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ монопольного Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΈ обновлСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π°. Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² ΠΊΠΎΠ΄Π΅.

Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚, Ссли Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ строку Π΄Π»ΠΈΠ½Π½Π΅Π΅ declared Π΄Π»ΠΈΠ½Ρ‹ Π² SQL Ρ‡Π΅Ρ€Π΅Π· внСшнюю ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ?

Π‘Π£Π‘Π” выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ ограничСния цСлостности (String or binary data would be truncated). 1Π‘ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ΠΈΡ‚ эту ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΊΠ°ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ выполнСния запроса. Π”Π°Π½Π½Ρ‹Π΅ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ записаны частично, транзакция Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΊΠ°Ρ‚Π»Π΅Π½Π°.

Как ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ строки для Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹?

Для Ρ‚ΠΈΠΏΠ° Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π±Π΅Π· ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ тСорСтичСский Π»ΠΈΠΌΠΈΡ‚ ΠΎΡ‡Π΅Π½ΡŒ Π²Π΅Π»ΠΈΠΊ (Π΄ΠΎ 2 ΠΌΠ»Ρ€Π΄ символов), Π½ΠΎ практичСский Π»ΠΈΠΌΠΈΡ‚ диктуСтся доступной ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΈ настройками Π‘Π£Π‘Π”. Для Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠ² Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅ максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ устанавливаСтся интСрфСйсом (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π΄ΠΎ 32000 ΠΈ Π±ΠΎΠ»Π΅Π΅ Π² зависимости ΠΎΡ‚ вСрсии).

ВлияСт Π»ΠΈ Π΄Π»ΠΈΠ½Π° строки Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… (.1CD)?

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

МоТно Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки зависимой ΠΎΡ‚ значСния Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ поля?

На ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… β€” Π½Π΅Ρ‚, Π΄Π»ΠΈΠ½Π° Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π° фиксирована. На ΡƒΡ€ΠΎΠ²Π½Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ β€” Π΄Π°, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ динамичСского измСнСния ОписаниСВипов Π² событиях Ρ„ΠΎΡ€ΠΌΡ‹. На ΡƒΡ€ΠΎΠ²Π½Π΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… это рСализуСтся Ρ‡Π΅Ρ€Π΅Π· Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Ρ‹ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΠ΅Ρ€Π΅Π΄ записью Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.