Rumah >pangkalan data >tutorial mysql >Mengapa Data Saya Dipenggal untuk Lajur \'incoming_Cid\' Walaupun Selepas Mengubah Suai Jenis Data?
Pemangkasan Data: Menyelidiki Teka-teki "Data Dipenggal untuk Lajur"
Dalam bidang pengurusan pangkalan data, pemangkasan data berlaku apabila ditetapkan ruang untuk menyimpan elemen data tertentu tidak mencukupi untuk menampung keseluruhannya. Ini boleh menyebabkan pemangkasan data, mengakibatkan kehilangan atau kerosakan.
Satu contoh pemangkasan data melibatkan mengubah jenis data lajur MySQL. Pertimbangkan senario di mana jenis data lajur yang bertujuan untuk menyimpan ID panggilan Twilio (rentetan 34 aksara) diubah suai. Apabila cuba mengemas kini data lajur secara manual, mesej ralat berterusan:
| Level ||| Code | Message | Warning | 1265 | Data truncated for column 'incoming_Cid' at row 1
Ralat ini timbul walaupun terdapat pengubahsuaian yang betul bagi jenis data lajur.
Punca Masalah : Penyelewengan Panjang
Isu asas dalam kes ini terletak pada panjang aksara yang salah bagi lajur_Cid masuk. Walaupun jenis data mungkin telah diubah suai kepada CHAR(34), panjang lajur sebenar kekal sebagai CHAR(1). Percanggahan ini mengakibatkan pemangkasan data apabila cuba menyimpan ID panggilan 34 aksara.
Menyelesaikan Isu Pemangkasan
Untuk membetulkan isu ini dan memastikan penyimpanan data yang betul, ikuti ini prosedur:
Semak Panjang Lajur: Sahkan bahawa panjang aksara lajur_Cid masuk ialah 1 menggunakan arahan:
SHOW COLUMNS FROM calls LIKE 'incoming_Cid';
Ubah suai Panjang Lajur: Untuk mengembangkan panjang lajur kepada 34 aksara, laksanakan arahan berikut:
ALTER TABLE calls CHANGE incoming_Cid incoming_Cid CHAR(34);
Contoh Kotak Pasir
Pertunjukan interaktif penyelesaian ini tersedia pada SQLFiddle: https://www.sqlfiddle.com/#!9/4a752/1.
Atas ialah kandungan terperinci Mengapa Data Saya Dipenggal untuk Lajur \'incoming_Cid\' Walaupun Selepas Mengubah Suai Jenis Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!