MySQLエラー1406の修正:データが列に対して長すぎます」が、そうではありませんか?
このエラーは、許可された制限よりも高いデータを設定しようとした場合に発生する可能性があります。たとえば、varcharまたはstringはビットデータ型よりもサイズが大きいため、bit型の列に文字列を格納することはできません。
ビットタイプ列には次の構文を使用する必要があります:
anyBitColumnName= b ‘1’ OR anyBitColumnName= b ‘0’
上記の構文を理解するために、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです。
mysql> create table IncasesensitiveDemo -> ( -> Id int NOT NULL AUTO_INCREMENT, -> Name varchar(10), -> PRIMARY KEY(Id) -> ); Query OK, 0 rows affected (0.70 sec)
挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。レコードを挿入するためのクエリは次のとおりです。
mysql> insert into ErrorDemo(Name,isStudent) values('John',1); Query OK, 1 row affected (0.18 sec) mysql> insert into ErrorDemo(Name,isStudent) values('Sam',0); Query OK, 1 row affected (0.21 sec) mysql> insert into ErrorDemo(Name,isStudent) values('Mike',0); Query OK, 1 row affected (0.16 sec) mysql> insert into ErrorDemo(Name,isStudent) values('Larry',1); Query OK, 1 row affected (0.23 sec) mysql> insert into ErrorDemo(Name,isStudent) values('Carol',1); Query OK, 1 row affected (0.11 sec) mysql> insert into ErrorDemo(Name,isStudent) values('Robert',0); Query OK, 1 row affected (0.17 sec) mysql> insert into ErrorDemo(Name,isStudent) values('James',1); Query OK, 1 row affected (0.18 sec) mysql> insert into ErrorDemo(Name,isStudent) values('Bob',1); Query OK, 1 row affected (0.19 sec) mysql> insert into ErrorDemo(Name,isStudent) values('David',1); Query OK, 1 row affected (0.15 sec) mysql> insert into ErrorDemo(Name,isStudent) values('Ricky',0); Query OK, 1 row affected (0.17 sec)
selectステートメントを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです。
mysql> select *from ErrorDemo;
出力は次のとおりです。
+----+--------+-----------+ | Id | Name | isStudent | +----+--------+-----------+ | 1 | John | | | 2 | Sam | | | 3 | Mike | | | 4 | Larry | | | 5 | Carol | | | 6 | Robert | | | 7 | James | | | 8 | Bob | | | 9 | David | | | 10 | Ricky | | +----+--------+-----------+ 10 rows in set (0.00 sec)
実際のサンプル出力スナップショットは次のとおりです。
上記のエラーは次のとおりです。以下のクエリで生成されます:
mysql> update ErrorDemo set isStudent='1' where Id=9; ERROR 1406 (22001): Data too long for column 'isStudent' at row 1
上記のエラーを回避するには、「1」の前に接頭辞bを付ける必要があります。これで、クエリは次のようになります。
mysql> update ErrorDemo set isStudent=b'1' where Id=9; Query OK, 0 rows affected (0.00 sec) Rows matched: 1 Changed: 0 Warnings: 0
selectステートメントを使用してテーブルレコードをもう一度確認します。クエリは次のとおりです。
mysql> select *from ErrorDemo;
出力は次のとおりです。
+----+--------+-----------+ | Id | Name | isStudent | +----+--------+-----------+ | 1 | John | | | 2 | Sam | | | 3 | Mike | | | 4 | Larry | | | 5 | Carol | | | 6 | Robert | | | 7 | James | | | 8 | Bob | | | 9 | David | | | 10 | Ricky | | +----+--------+-----------+ 10 rows in set (0.00 sec)
実際のサンプル出力スナップショットは次のとおりです。
isStudent列を見てください。
次に、同じIDを値0で更新します。これにより、対応するIDで空白の値が得られます。クエリは次のとおりです。
mysql> update ErrorDemo set Name='Maxwell', isStudent=b'0' where Id=9; Query OK, 1 row affected (0.16 sec) Rows matched: 1 Changed: 1 Warnings: 0
上記で更新された特定の行のレコードを確認してください。これがId9です。これで行がレコードId9で更新されました。クエリは次のとおりです。
mysql> select *from ErrorDemo where Id=9;
出力は次のとおりです。
+----+---------+-----------+ | Id | Name | isStudent | +----+---------+-----------+ | 9 | Maxwell | | +----+---------+-----------+ 1 row in set (0.00 sec)
-
コネクタをクラスパスに設定するためのJavaMySQL接続の接続エラーを修正しますか?
修正するには、MySQLコネクタをJavaクラスパスに配置する必要があります。コネクタのjarファイルを使用しているIDEのプロジェクトフォルダにインポートします。 これがクラスパスを配置するためのスナップショットです- ここで、JavaとMySQLを接続するためのコードを見てみましょう- これにより、次の出力が生成されます-
-
単一のMySQLクエリのすべての列名に「エイリアス」を設定します
列名のエイリアスを設定するための構文は次のとおりです- select yourColumnName1 anyAliasName1,yourColumnName2 anyAliasName2 from yourTableName anyAliasName; 上記の構文を理解するために、テーブルを作成しましょう- mysql> create table DemoTable2014 -> ( -> FirstName varchar(20), -> LastName varchar(20)