空白だけで2つの文字列を入力すると、どのように私は、 "自動トリム" をオフにすることができます重複したエントリ 'PRIMARY' 'キーのための'MYSQLが自動トリムを無効にする
:
ERROR 1062:私は、このエラーメッセージが表示されますか?
私はこれを使用していますとこのデータ型:
Varchar
です。
空白だけで2つの文字列を入力すると、どのように私は、 "自動トリム" をオフにすることができます重複したエントリ 'PRIMARY' 'キーのための'MYSQLが自動トリムを無効にする
:
ERROR 1062:私は、このエラーメッセージが表示されますか?
私はこれを使用していますとこのデータ型:
Varchar
です。
SQL 92文書によると、2つの文字列を比較すると、最短の文字列をスペースで埋めて長さを同じにします。
8.2 <comparison predicate>
を文書内で検索します。
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>.
つまり、言い換えれば、それはあなたが入力したスペースの量で値を格納するのではなく、重複した主キーをチェックするための比較です。したがって、スペースの異なる2つの文字列を主キーとして使用することはできません
ありがとうございます。 Can not NO PADの設定方法を教えてください。 –
残念ながら、MYSQLでは変更できません。マニュアルhttp://dev.mysql.com/doc/refman/5.5/en/char.htmlには、「すべてのMySQL照合はPADSPACE型です。これは、MySQLのすべてのCHAR値とVARCHAR値が後続のスペースに関係なく比較されることを意味します。 –
自動トリミングの問題はありますか? –
はい、そのプライマリキーと私はそれが自動トリミングの問題であるかどうかはわかりません..しかし、私はどのように追加することができます異なるLenghtの2つの空の文字列 –
私の最初の質問は、それは必要ですか?また、必要な場合は、列がプライマリキーである必要がありますか? – Vijay