Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyelesaikan Ralat MySQL 1406: Data Terlalu Panjang untuk Lajur?

Bagaimana untuk Menyelesaikan Ralat MySQL 1406: Data Terlalu Panjang untuk Lajur?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-04 05:06:39895semak imbas

How to Solve MySQL Error 1406: Data Too Long for Column?

Ralat MySQL: "1406. Data terlalu Panjang untuk Lajur"

Apabila cuba memasukkan data ke dalam jadual MySQL di mana panjang data lajur melebihi lebar yang ditentukan, anda Akan menemui "Kod Ralat: 1406. Data terlalu panjang untuk lajur" ralat.

Pertimbangkan contoh ini:

CREATE  TABLE `TEST` (
  `idTEST` INT NOT NULL ,
  `TESTcol` VARCHAR(45) NULL ,
  PRIMARY KEY (`idTEST`) 
);

Memasukkan data dalam panjang lajur yang ditentukan berfungsi seperti yang diharapkan:

INSERT INTO TEST
VALUES
(
    1,
    'Vikas'
);

Walau bagaimanapun, cuba memasukkan data yang melebihi panjang lajur maksimum mengakibatkan ralat:

INSERT INTO TEST
VALUES
(
    2,
    'Vikas Kumar Gupta Kratika Shukla Kritika Shukla'
);

Ini berlaku kerana MySQL memotong sebarang nilai sisipan yang lebih panjang daripada lebar lajur yang ditentukan.

Penyelesaian:

Untuk menyelesaikan isu ini, lumpuhkan mod ketat MySQL buat sementara waktu:

Dalam my my Fail .ini (Windows) atau my.cnf (Unix):

Edit Tetapan "sql-mode" untuk mengalih keluar "STRICT_TRANS_TABLES":

# Set the SQL mode to strict
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

Menggunakan pertanyaan SQL dalam alat pengurusan pangkalan data:

Laksanakan pertanyaan berikut untuk menetapkan mod SQL global untuk mengosongkan:

SET @@global.sql_mode= '';

Dengan mod ketat dilumpuhkan, anda boleh memasukkan data yang melebihi panjang lajur. Walau bagaimanapun, berhati-hati kerana ini boleh menyebabkan pemangkasan data dan ketidakkonsistenan, jadi gunakan penyelesaian ini dengan bijak.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat MySQL 1406: Data Terlalu Panjang untuk Lajur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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