Według SQL 92 dokumentacji, gdy porównuje się dwa łańcuchy, najpierw są one wyrównane pod względem długości przez uzupełnienie najkrótszego łańcucha spacjami.
Wyszukaj 8.2 <comparison predicate>
w dokumencie.
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>.
Innymi słowy. Nie chodzi o przechowywanie wartości z ilością wprowadzonych spacji, ale o porównanie, które robi, aby sprawdzić duplikat klucza podstawowego. Nie możesz więc mieć dwóch ciągów znaków o różnej ilości spacji jako klucza podstawowego