mysql データが長すぎて列 xxx の解決策にならない
SQLException: データの切り捨てです。1行目の列 '****' のデータが長すぎる クエリ、長い時間のためのクエリ、唯一のデータベースの文字セット エラーを見つけることです。それを整理した後、解決策は、次のとおりです。
最初の解決策
からです。
http://www.blogjava.net/zoninge/archive/2009/04/15/265663.html
ブロガーの皆さん、ありがとうございました。
mysql5へのページで。 0は、中国語のデータプロンプトの失敗を挿入すると、マネージャにSQLステートメントをコピーして、データベースのプロンプトのデータが長すぎる列"タイトル&quot。 は、私は中国の文字に変更したり、同じメッセージをプロンプトに、英語に変更し、もう一度試して、正常な、それは問題を除いて文字セットであるべきですが、データベースはDEFAULT_CHARSETを選択して作成された、それはフィールド問題であるべきである。
MySQLのインストールディレクトリにあるmy.iniファイルで、以下のように文字セットを設定します(修正後はMySQLサービスを再起動した方がよいでしょう)。
[mysql]です。
デフォルトキャラクターセット=gbk
[mysqld]です。
デフォルトキャラクタセット=gbk
または、my.iniで検索してください。
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
を入れます。
strict_trans_tablesを使用します。
削除して、mysqlを再起動すればOK!
テーブルとフィールドの両方のcharsetプロパティをgbkに変更します。
各 MySqlCommand Execute ステートメントで、SQL ステートメントまたはパラメータに中国語が含まれている場合、または返されたレコードセットに中国語がある場合 (Select のクエリーステートメントを参照)、この Execute の SQL ステートメントの前に SET NAMES GBK; を追加してください。
第二の解決策
http://www.cnblogs.com/amboyna/archive/2008/04/21/1163110.html
ブロガーの皆さん、ありがとうございました。
データが長すぎて列 xxx の解決策にならない
phpmyadminの接続に失敗したときに、Update:mysql5ステートメントが実行される。
SET PASSWORD FOR 'root'@'localhost' = OLD_PASSWORD('[newpassword]');
先ほど、データのインポート時に、navicatがエラーを報告しました。
1 行目の列 'ip' のデータが長すぎます。
ヒント:ipフィールドのデータが長すぎる
データ型が正しくない場合も、4.*の自動変換とは異なり、エラーになります。
sendQuery:Incorrect datetime value: 'unknown' for column 'date' at row 1
データ型 x (int 11)だとおかしいかもしれません。
a (x) に値 ('a') を挿入します。
表示されます。
1行目の列 'x' で調整された範囲外の値
a (x) の値 ('11a') に挿入します。
表示されます。
1行目の列 'x' でデータが切り捨てられた
解決策
my.iniの中にある
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
を入れます。
strict_trans_tablesを使用します。
削除して、mysqlを再起動すればOK!
参考ブロガー取得:トラックバック:[url] http://tb.blog.csdn.net/TrackBack.aspx?PostId=2032186[/url]
MySQL 5 の varchar フィールドタイプの長さの定義については、こちらをご覧ください。
原文が若干横取りされています。
http://hi.baidu.com/mcspring/blog/item/63f0dea25e8e7baacbefd0ad.html
私はこの機会にMySQL5のドキュメントを注意深く読み直したところ、varcharフィールドタイプについて次のように記述されていました: varchar(m) Variable-length string. mは最大列長を示します。
なぜこのような変換をするのか?慎重に下を読み進めないとこの記述が見つからないので、本当にMySQLのマニュアルは不親切すぎると感じます。MySQL 5.1 は標準 SQL 仕様に従い、VARCHAR 値から末尾のスペースを削除しない。varchar はプレフィックス + 1 バイトまたは 2 バイトのデータで保存される。VARCHAR カラム宣言が 255 より長い場合、長さのプレフィックスは 2 バイトになります。
OK、少しは理解できたようです。しかし、具体的には、長さが255より大きいときは2バイト長のプリフィックスを使うと言ったこと、小学校の引き算の問題:65535 - 2 = 65533あ。こんなでかい牛がどうやって計算するのか、とりあえず疑問は残りますよね。
注:UTF8エンコーディングでテストしたところ、varcharの最大長は21854バイトでした。
------------------------------------------------------------------
文字が悪いのかもしれない 上記のどれでも問題は解決しました。データ型をlongtextに変更したら、長さは設定しなくてもOKになりました。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例