26

14000を超えるステートメントを含むmysqlファイルがあります。それらはすべてテーブルへの挿入であり、コンソールを使用してファイルをインポートすると、次のエラーがスローされます。

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

列名で指定された行がVALUESリストで指定された行と異なる場合にエラーが表示されることは知っていますが、何度もチェックアウトしており、列の数は両方のリストでまったく同じです。

45番目の行は次のとおりです。

('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

それに関連付けられた挿入行、上記の多くの行は次のとおりです。

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

このエラーを探しましたが、カウントが異なる場合にのみ表示されるようですが、この場合は同じです。

何か案が?

編集:言及するのを忘れました:phpmyadminに直接sqlステートメントをスローすると、エラーなしで行が正しく追加されます。上記のステートメントはデータベースに正しく挿入されており、これとほとんど同じですが、コマンドラインから実行した場合にのみクラッシュします。

EDIT2:46まですべての行を削除しました。ファイルを起動すると、エラーは次のようになります。

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

行を変更するだけですが、その行はINSERTステートメントであり、ファイルの他の部分にある他のINSERTステートメントとまったく同じです。前の行も正しいです。

4

7 に答える 7

1

ファイル内の特殊な非表示文字を確認してください。ファイル内のすべての空白はスペースであると思われるかもしれませんが、他の文字がデータを見て理解できない方法で挿入を強制終了する場合があります。

他のすべてが失敗した場合は、INSERTを手動で再入力し、それ自体をファイルで実行して、それでも失敗するかどうかを確認します。

于 2012-10-24T09:53:58.323 に答える