2013-02-05 25 views
5

Yalnızca beyaz boşluk içeren iki Dizge girersem. 'Anahtar' girişini çoğaltın 'İLKÖĞRETİM' ı "Otomatik Trim" kapatma nasılMYSQL devre dışı bırak Otomatik Düzeltme

: 1062

HATA: Bu hata mesajını mı olacak?

Bunu kullanıyorum Charset: uft8-uft8_bin ve Bu Datatype: Varchar.

+1

Bir otomatik trim sorunu olduğundan emin misiniz? –

+0

Evet Birincil Anahtar ve ben bir otomatik trim sorun olduğunu emin değilim .. Ama nasıl farklı uzunluk ile iki boş dize ekleyebilirsiniz –

+0

Benim ilk soru neden sütun boş bir boşluk giriyor olacak? Bu gerekli mi? Ayrıca eğer gerekliyse, sütunun birincil anahtar olması gerektiğinden emin misiniz? – Vijay

cevap

6

SQL 92 belgelerine göre, iki dizginin karşılaştırıldığı zaman, önce en kısa dizeyi boşluklarla doldurmak suretiyle uzunlukları eşit hale getirilir.

Belgede 8.2 <comparison predicate> araması yapın. Başka bir deyişle, başka bir deyişle, . Değeri, girdiğiniz boşluk miktarı ile değil, yinelenen birincil anahtarı kontrol etmek için yaptığı karşılaştırma ile depolamaktan ibaret değildir. Bu nedenle, birincil anahtar olarak farklı bir alan boşluğu olan iki dizeye sahip olamazsınız.

+0

Yanıtladığınız için teşekkür ederiz. Bana NO PAD'yi nasıl ayarlayabileceğimi söyleyebilir misin? –

+0

Maalesef MYSQL bunu değiştirmenize izin vermiyor. Http://dev.mysql.com/doc/refman/5.5/en/char.html kılavuzunda "Tüm MySQL harmanlamaları PADSPACE türünde" yazıyor. Bu, MySQL'deki tüm CHAR ve VARCHAR değerlerinin, sondaki boşluklara bakılmaksızın karşılaştırıldığı anlamına gelir. –

İlgili konular