Mengapa MySQL Mengabaikan Ruang Jejak dalam Medan Unik?

Mary-Kate Olsen
Lepaskan: 2024-10-31 21:12:29
asal
312 orang telah melayarinya

Why Is MySQL Ignoring Trailing Spaces in Unique Fields?

Pangkalan Data MySQL Mengabaikan Ruang Jejak Medan Unik

Apabila mencipta pangkalan data dengan medan unik dalam MySQL, nilai yang mengandungi pendahuluan atau pengekoran dijangkakan ruang harus dianggap sebagai berbeza. Walau bagaimanapun, diperhatikan bahawa ruang belakang dipangkas semasa sisipan, mengakibatkan ralat nilai pendua apabila cuba memasukkan perkataan dengan ruang putih mengekor yang berbeza-beza.

Isu asas terletak pada tingkah laku perbandingan rentetan lalai MySQL, yang mengabaikan ruang putih mengekor. Akibatnya, indeks UNIK menggunakan perbandingan rentetan standard, menyebabkannya mengabaikan ruang kosong mengekor dan menolak sisipan berdasarkan kesamaan aksara.

Untuk menyelesaikan isu ini, satu pendekatan ialah menyimpan nilai sebagai VARBINARY, yang mengekalkan ruang dan membolehkan penciptaan indeks unik yang menghormati ruang kosong mengekori. Walaupun ia membenarkan untuk menyimpan nilai dengan ruang yang berbeza-beza, adalah penting untuk ambil perhatian bahawa pengisihan mengikut nilai ini mungkin tidak membuahkan hasil yang diharapkan.

Penyelesaian alternatif ialah menggunakan pengumpulan NO PAD MySQL, yang telah diperkenalkan dalam MySQL 8.0 . Pengumpulan ini, seperti utf8mb4_0900_ai_ci, mengendalikan perbandingan rentetan tanpa mengabaikan ruang mengekor. Dengan mencipta medan unik dengan pengumpulan NO PAD, anda boleh memastikan bahawa nilai dengan ruang putih mengekori yang berbeza-beza dianggap sebagai berbeza.

Atas ialah kandungan terperinci Mengapa MySQL Mengabaikan Ruang Jejak dalam Medan Unik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!