MySQLエラーとは何ですか:「データが列に対して長すぎます」?
「列に対してデータが長すぎます」エラーは、そのデータを格納する機能がない列にさらにデータを挿入すると発生します。
例 - varchar(6)のデータ型がある場合、それは6文字のみを格納することを意味します。したがって、6文字を超える文字を指定すると、エラーが発生します。
エラーを理解するためのテーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです-
mysql> create table DataToolongDemo −> ( −> Name varchar(10) −> ); Query OK, 0 rows affected (0.55 sec)
上記では、テーブルが正常に作成されました。フィールド「Name」に「varchar(10)」を設定しました。ここで、10文字を超える文字を指定すると、エラーが発生します。
エラーは次のとおりです-
mysql> insert into DataToolongDemo values('Carol Taylor'); ERROR 1406 (22001): Data too long for column 'Name' at row 1
上記のエラーを修正するには、タイプをlongtextに設定します。現在、タイプは「varchar」-
であるため、タイプをロングテキストに変更するためのクエリは次のとおりです。mysql> alter table DataToolongDemo change Name Name longtext; Query OK, 0 rows affected (2.22 sec) Records: 0 Duplicates: 0 Warnings: 0
同じレコードを挿入すると、エラーは生成されません-
mysql> insert into DataToolongDemo values('Carol Taylor'); Query OK, 1 row affected (0.11 sec)
selectステートメントを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです-
mysql> select *from DataToolongDemo;
以下は出力です-
+--------------+ | Name | +--------------+ | Carol Taylor | +--------------+ 1 row in set (0.00 sec)
-
MySQLエラー1406の修正:データが列に対して長すぎます」が、そうではありませんか?
このエラーは、許可された制限よりも高いデータを設定しようとした場合に発生する可能性があります。たとえば、varcharまたはstringはビットデータ型よりもサイズが大きいため、bit型の列に文字列を格納することはできません。 ビットタイプ列には次の構文を使用する必要があります: anyBitColumnName= b ‘1’ OR anyBitColumnName= b ‘0’ 上記の構文を理解するために、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです。 mysql> create table Incases
-
MySQLテーブルデータはWindowsのどこに保存されていますか?
MySQLテーブルデータの場所を知るために、以下の構文を使用できます- select @@datadir; これには、SHOWVARIABLESコマンドを使用することもできます。以下は構文です- show variables where Variable_name ='datadir'; 上記の構文を実装して、MySQLテーブルがデータを格納する場所を確認しましょう- mysql> select @@datadir; これにより、次の出力が生成されます- +---------------------------------------------+ | @@data