Vastus (01.02.2025 15:13): Tühi string, tühikutest koosnev string ja tühimärkidest koosnev string on kõik tekstilised väärtused ning selliseid piiranguid võib olla vaja jõustada tekstiliste veergude põhjal.
Need ei ole sama mis NULL. NULL on spetsiaalne tähis, mis osutab väärtuse puudumisele, samas kui eelnimetatud on väärtused. Tühimärkide hulk (ingl k
whitespace character) hõlmab tühikuid, tabulatsioone, reavahetusi ja muid mitteprinditavaid tühikuid tekstis.
Oletame, et tabelis on veerg nimega
nimetus. Mõned märkused:
- Trim on paljudes andmebaasisüsteemides toetatud funktsioon, mis eemaldab stringi algusest ja lõpust tühikud.
- Esitatud kitsendused on sellised, kus iga kitsenduse realisatsioon hõlmab endas ka eelmiste kitsenduste jõustamist (seega näiteks kitsenduse "ei tohi olla tühimärkidest koosnev string" realisatsioon välistab ka tühikutest koosnevate stringide ja tühjade stringide registreerimise.
MS Access
- Ei tohi olla tühi string (kaks võimalikku viisi):
- Veeru nimetus omadus, mida saab määrata graafilises kasutajaliideses: Allow Zero Length = No
- CHECK(nimetus<>'')
- Ei tohi olla tühikutest koosnev string (kaks võimalikku viisi):
- Veeru nimetus valideerimisreegel, mida saab määrata graafilises kasutajaliideses: Trim([nimetus])<>''
- CHECK(Trim(nimetus)<>'')
- Ei tohi olla tühimärkidest koosnev string: Ei saa jõustada
PostgreSQL
- Ei tohi olla tühi string:
- Ei tohi olla tühikutest koosnev string:
- Ei tohi olla tühimärkidest koosnev string:
- CHECK(nimetus!~'^[[:space:]]*$')
- Kasutatakse regulaaravaldist
- !~ - operaator, mis kontrollib, et string ei vastaks mustrile
- [[:space:]] - tühimärkide klass
- ^ - stringi algus
- $ - stringi lõpp
- * - esineb null või rohkem korda
- Alternatiivne kirjapilt: CHECK(nimetus!~'^\s*$')