Saya menggunakan MySQL 8.0 dan cuba menyimpan URL dalam lajur. Setiap kali saya cuba memasukkan URL yang lebih panjang daripada 191 aksara, saya mendapat ralat berikut:
1406 Data too long for column 'url' at row 1
Jenis data lajur ialah VARCHAR(1000) dan URL adalah lebih kurang 450 aksara. Saya telah cuba memasukkan rentetan lain dan apa-apa sahaja di bawah 191 aksara, dan apa-apa di bawah 191 aksara berfungsi dengan baik, tetapi tiada yang melebihi 191 aksara.
Saya cuba menukar jenis data lajur ini kepada format rentetan lain seperti TEXT, LONGTEXT dan BLOB. Saya juga cuba memasukkan rentetan lebih panjang daripada 191 aksara dalam jadual lain dan ia juga terhad kepada 191 aksara.
Saya tahu bahawa utf8mb4 menghasilkan VARCHAR(255) yang sebenarnya 191, tetapi bukankah saya patut mengatasinya dengan VARCHAR(1000)? Adakah terdapat tetapan dalam pangkalan data yang boleh menyebabkan isu ini?
Diambil dari di sini:
Jadi lebih baik anda gunakan format
TEXT
untuk URL anda.Kemas kini:
Menurut jawapan ini, masalahnya adalah dengan set watak, apabila perlu
utf8
时,它是utf8mb4
, disusun sama.