» »

[MariaDB] Unique index, dve vrednosti; ena z, druga brez presledka na koncu

[MariaDB] Unique index, dve vrednosti; ena z, druga brez presledka na koncu

HotBurek ::

Pozdravljeni.

Evo, danes spet nov super dan, in novi super izzivi.

Za začetek, dva linka, ki sta pripeljala do sem:

[MariaDB] Zakaj SQL enači "ab " z "ab" v WHERE pogoju?
[MariaDB] Zakaj LENGTH za ne ASCII znake (npr. "é") vrača dolžino 2 (namesto 1)?


Sedaj pa situacija.

Kreiram tabelo:
CREATE TABLE `test1` (
  `column1` varchar(3) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

V stolpec column1 vnesem dve vrednosti: "ab" in "ab ". Prva brez presledka, druga z presledkom (na koncu stringa).

In ko poizkusim kreirat unique index:
CREATE UNIQUE INDEX `test1_column1_IDX` USING BTREE ON `test1` (`column1`);

Dobim error:
Duplicate entry 'ab' for key 'test1_column1_IDX'

Kako naredit, da bo UNIQUE INDEX vidil "ab" in "ab " kot dva različna vnosa?

Spet ta space...
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window

l0g1t3ch ::

Konec meseca bi lahko ST-ju nakazal kake četrt svoje plače :))

Sicer pa je to stvar collation-a. Kolikor se še spomnim MySQL časov.

Zgodovina sprememb…

  • spremenilo: l0g1t3ch ()

l0g1t3ch ::

Ah...
Pogledal bolje in vidim da specificiraš "utf8mb4_bin", kar zgled prav. Ampak očitno tega ne upošteva.

Bug?
Ali pa je treba naštudirat detajle dokumentacije :)

OracleDev ::

Preber si dokumentacijo za tip varchar in kaj pomeni "trailing spaces".

HotBurek ::

Sem šel gledat na internete, in ena od opcij je, da se stolpec definira kot VARBINARY.

https://stackoverflow.com/questions/117...

Za zdaj sem se odločil, da teh vrednosti (takih, ki imajo na koncu presledek), še naprej ne bom shranjeval v tabelo in bom rešil zadevo drugače.
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window

Zgodovina sprememb…

  • spremenilo: HotBurek ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Mariadb (InnoDB) istočasni insert v tabelo iz različnih procesov (strani: 1 2 )

Oddelek: Programiranje
877470 (3828) 2g00d4u
»

[MariaDB] Zakaj SQL enači "ab " z "ab" v WHERE pogoju?

Oddelek: Programiranje
101066 (651) DamijanD
»

[MariaDB] Kako definirat tabelo, da bo index ločil med "a" in "ä"?

Oddelek: Programiranje
7797 (511) Miha 333
»

[UWP] [C#]

Oddelek: Programiranje
424206 (2236) BivšiUser2
»

MySql Vprasanje - problem dupliciranih kljucev

Oddelek: Izdelava spletišč
131448 (1270) KernelPanic

Več podobnih tem