2012-10-24 89 views
12

Tôi đã có tệp mysql với hơn 14.000 câu lệnh. Tất cả trong số họ là chèn vào một bảng, và khi tôi nhập khẩu các tập tin sử dụng giao diện điều khiển, nó ném các lỗi sau:"Số cột không khớp với số lượng giá trị ở hàng" nhưng nó có

ERROR 1136 (21S01) at line 1548: Column count doesn't match value count at row 45 

Tôi biết lỗi xuất hiện khi các hàng quy định tại tên cột là khác nhau từ các hàng quy định trong danh sách VALUES, nhưng tôi đã kiểm tra nó nhiều lần và số cột chính xác giống nhau trong cả hai danh sách.

Hàng ở vị trí 45 là:

('00553', 'AAA', 'BBB', 'CCC', 'XXXXXXXXR', 'user address', 'spain', 'spain', '39212', '1900-01-21', '123456789', 'M', 'No disponible', 0, 'AAA', 'BBB ', 'CCC', 'XXXXXXXXR', NULL, '888993344', '', '', '', '', 'no', 'no') --> 26 columns 

và dòng chèn gắn liền với nó, nhiều dòng trên là:

INSERT INTO `users` (`id_patient`, `name`, `surname1`, `surname2`, `dni`, `address`, `city`, `state`, `postal_code`, `birthday`, `telephone`, `sex`, `email`, `lopd_status`, `lopd_name`, `lopd_surname1`, `lopd_surname2`, `lopd_dni`, `lopd_as`, `mobile_phone`, `notes`, `job`, `company`, `place`, `active_citation`, `signature`) --> 26 columns 

Tôi đã nhìn cho lỗi này nhưng nó chỉ có vẻ như nó xuất hiện khi đếm là khác nhau, nhưng trong trường hợp này, nó là như nhau.

Bất kỳ ý tưởng nào?

EDIT: quên đề cập: nếu tôi ném câu lệnh sql trực tiếp trên phpmyadmin, nó sẽ thêm dòng chính xác mà không có bất kỳ lỗi nào. Nó chỉ treo khi chạy từ dòng lệnh, mặc dù các câu lệnh ở trên nó được chèn chính xác vào cơ sở dữ liệu và chúng gần như giống với cái này.

EDIT2: Tôi đã gỡ bỏ tất cả các dòng cho đến khi 46 tuổi và khi tôi khởi động file erros như sau:

ERROR 1136 (21S01) at line 1503: Column count doesn't match value count at row 45 

Nó chỉ thay đổi dòng, nhưng dòng đó là câu lệnh INSERT, đó là chính xác giống như các câu lệnh INSERT khác trong phần còn lại của tệp. Dòng previos cũng đúng.

+3

dòng séc 44 và 46 cũng ... –

+0

Tôi cũng đã kiểm tra họ và họ cũng có 26 cột. – Pask

+0

Câu lệnh tạo bảng để tìm bảng này như thế nào? –

Trả lời

10

tôi phải đối mặt với một vấn đề tương tự vì chèn ngoặc xung quanh dữ liệu :-(:

INSERT INTO Customers (Name,LastCredit,CreditDate) VALUES (<-- Here. 
    ("Nuclear Millitary Systems",500.0,CURRENT_DATE), 
    ("Evil Corporation",67890.95,"2012-02-12"), 
    ("Nuke Software Systems",5600.0,"2013-05-06"), 
    ("RR Millitary",600.0,"2013-05-06"), 
    ("Random Automation",560.0,"2012-05-01"), 
    ("Evil Data Systems",600.0,"2013-03-01") 
); 
1

Kiểm tra các ký tự ẩn đặc biệt trong tệp. Bạn có thể nghĩ rằng tất cả khoảng trống trong tệp là dấu cách, nhưng đôi khi các ký tự khác có thể giết chèn bằng cách nào đó bạn không thể hiểu được bằng cách xem dữ liệu.

Nếu vẫn thất bại, hãy gõ lại INSERT theo cách thủ công và tự chạy nó trong một tệp để xem liệu nó có bị lỗi hay không.

+0

Tôi đã xóa tất cả các ký tự đặc biệt trong dòng trước và sau ký tự đó nhưng lỗi vẫn tiếp tục. Tôi cũng đã đặt dòng đó và dòng tiếp theo vào một tệp riêng biệt và mysql chèn chúng vào cơ sở dữ liệu một cách chính xác. Điều này đang bắt đầu bực bội ... – Pask

+0

Hơn nữa, cho ăn mysql với một tập tin có chứa 4 dòng trước nó và 4 dòng sau của nó cũng đi ok: ( – Pask

+0

Tôi đã nhập tệp vào phpmyadmin nhưng lỗi là như nhau. – Pask

9

Tôi đang gặp phải lỗi tương tự. Nó chỉ là vấn đề của một dấu phẩy còn thiếu. Kiểm tra xem tất cả các mục trong báo cáo chèn được ngăn cách bởi dấu phẩy

+1

Đây chỉ là nó! YACPG - Tuy nhiên, một phần mềm sao chép dán khác :) – Santosh

3

Trong trường hợp của tôi, tôi đã có một kích hoạt trên INSERT với số không khớp cột : (&

3

Trong trường hợp của tôi, bảng cơ sở dữ liệu của tôi có trình kích hoạt liên quan đến bảng khác và thiếu một cột trong bảng được kích hoạt.Một cái gì đó như thế này:

Table1 cột: UserAccountID, loại tài liệu, điều khoản, Status

do kích thích Bảng 2 cột: số sửa đổi, sửa đổi Status, UserAccountID, Quyền, Tình trạng

Vì vậy, trong bảng 2, cột "loại tài liệu" bị thiếu. Kiểm tra trigger trong DB bởi

"hiển thị gây nên từ {Database Name}"

Các vấn đề liên quan