こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

MySQLでデータベースにデータinsert時のエラー。

com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column '******' at row 1
とエラーがでて解決できません。どこがおかしいのでしょうか?(JAVA初心者ですいません。)

投稿日時 - 2006-03-20 23:34:01

QNo.2041623

すぐに回答ほしいです

質問者が選んだベストアンサー

私の場合ですが、データベース接続直後に
"SET NAMES SJIS;"
を実行すれば正常にINSERT出来ました。

なお、テーブルの作成時に文字コードをSJISにしておく必要があります。私は(cp932 -- SJIS for Windows Japanese)にしました。
後からテーブルの文字コードを修正してもうまくいきませんでした。

投稿日時 - 2006-12-31 02:47:07

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.4

ANO.3の方の補足として、ANO.3の回答は文字データがSJISであることを
前提として話されていると思います。
ANO.3の条件を満たしているのにまだ同じエラーが発生する場合、
データの登録処理を行なうときの文字コード、テーブルの文字コードの設定を
確認してみて下さい。

参考URLはMySQLの文字コード設定について書かれたページです。

参考URL:http://www.javadrive.jp/mysql/control/index1.html

投稿日時 - 2006-03-22 01:33:30

ANo.3

全角2バイト文字は、varcharで指定する桁数の2倍のサイズが必要ではないですか?

例えばvarchar(4)に”あいうえ”は入りません。
varchar(8)が必要です。

という事ではないですか?

投稿日時 - 2006-03-21 22:42:59

ANo.2

まずは質問の仕方がおかしいかと思います。
MySQLのバージョンも書かない、環境も書かない、
どんなデータを入れようとしたのか、カラムの定義はなんなのか。
そもそも、どんな処理を行なおうとしたのかも分かりません。
あまりに情報不足です。
これではANO.1のように考えない人の方が僕は不思議に思います。

思いつく限りを全部あげていきます。思い当たる物があると良いのですが…

○全角と半角の間違い
○SQLの環境とデータを投入する処理の文字コードが異なる
○区切りに設定している改行コードが\rなのに対し、データが\r\nの改行区切りである

うーん、あまり思いつかないですね…

投稿日時 - 2006-03-21 03:24:14

補足

環境はwindowsxp
エディターはeclipse3.1
mysqlは5.0.16です。
処理は、テーブルにデータを登録しようとしているところです。
エラーの部分はvarcharで定義していて、日本語を入れています。半角英数字のデータは登録できました。
よろしくお願いします。

投稿日時 - 2006-03-21 09:45:40

ANo.1

Data too long ですから、MySQLのInsertしようとしているテーブルのカラム定義より長い桁の値をセットしてしまっているのではないですか?

例えばchar(1)のカラムに2桁の文字をInsertしようとしている、とかです。

投稿日時 - 2006-03-20 23:41:56

補足

テーブルのカラム定義より長い桁の値をセットしてしまっていることは、ありません。
ちゃんとそれは、しています。

投稿日時 - 2006-03-20 23:59:33

あなたにオススメの質問