Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL disabilita il taglio automatico

Secondo SQL 92 documentazione, quando due stringhe vengono confrontate vengono prima rese uguali in lunghezza riempiendo la stringa più corta con spazi.

Cerca 8.2 <comparison predicate> nel documento.

If the length in characters of X is not equal to the length
in characters of Y, then the shorter string is effectively
replaced, for the purposes of comparison, with a copy of
itself that has been extended to the length of the longer
string by concatenation on the right of one or more pad char-
acters, where the pad character is chosen based on CS. If
CS has the NO PAD attribute, then the pad character is an
implementation-dependent character different from any char-
acter in the character set of X and Y that collates less
than any string under CS. Otherwise, the pad character is a
<space>.

Quindi in altre parole. Non si tratta di memorizzare il valore con la quantità di spazi che hai inserito, ma è il confronto che fa per verificare la presenza di una chiave primaria duplicata. Quindi non puoi avere due stringhe con una quantità diversa di spazi che fungono da chiave primaria