
MySQLサーバにLOAD DATA INFILEコマンドを使ってファイルを読み込む時,なぜかBit(1)型の列にTrueを入れる際にWarningが無くなりません.
オプションには
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\r\n'
を選択して "列1","列2","列3"\r\n の形式で読み込んでいます.
この時,Bit(1)型の列にFalseを入れるときには"\0"や"\n",""のような値を入れれば問題なくFalseとなるのですが,逆に他の何を入れてもwarningの発行とともにTrueになり,(Trueが入る事ではなく,warningの発行の方に)困っております.
何方か,warningを出さずにtrueを入力する方法を教えて頂けませんでしょうか.
宜しくお願いします.
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
追記です。
trueやfalseとして扱いたいなら、bitでなくboolを使用してください。
そうすれば、load data infileの入力ファイルでは、0や1としてデータを作成しておけばいいことになります。
No.2
- 回答日時:
MySQLのバージョンは、何でしょうか?
MySQLでは、boolとtinyint(1)は同じ意味であり、trueやfalse、0や1を持ちます。
一方、bitはSQLとして定数で指定するなら、b'1'のように指定します。SQL上ではbool、tinyint(1)とbitの変換を自動的に行ってくれますが、load data infileの入力ファイルからは、b'1'といった定数として入れられないし、数値変換も自動的には行ってくれません。
マニュアルのload dara infileの説明にある、ユーザ変数の指定方法、set句の使い方で説明されています。
http://dev.mysql.com/doc/refman/5.1/ja/load-data …
LOAD DATA INFILE '/tmp/bit_test.txt'
INTO TABLE bit_test (@var1)
SET b= CAST(@var1 AS SIGNED);

No.1
- 回答日時:
MySQLのbool値は、内部的には、数値の1,0が、それぞれtrue,falseとして保持されています。
ファイルから読み込む時も、"1"または 1 がtrueで、0 や ""空文字列は falseです。
コマンドラインのsql文上では、括り無しで true と書いても、1 に変換して内部処理していますが、ファイル読み込みで、true とかfalse とか書くと単純に文字列と見なされるので、範囲外のwarningがでるのでしょう。
この回答への補足
回答有難う御座います.
しかし上記方法は既に試行済みですし,Bit型の内部が0と1で構成されている事も了解しております.
念のために確認しましたが,やはり下記のようにWarning1264が出現しました.
Warning | 1264 | Out of range value adjusted for column 'bit' at row 1
補足するならば,他に1^1なども試しております.
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
OracleのSQL*PLUSで、デー...
-
Excelでセルの書式設定を使用し...
-
GROUP BYを使ったSELECT文の総...
-
Excelで、改行がある場合の条件...
-
ADO VBA 実行時エラー3021
-
Oracleでの文字列連結サイズの上限
-
GROUP BYを行った後に結合した...
-
select句副問い合わせ 値の個...
-
ACCESSの集計クエリで3件ある...
-
使うべきでない文字。
-
Accessで別テーブルの値をフォ...
-
postgresql DELETE後commit...
-
割合(パーセント)を求めるに...
-
沿線コード
-
MERGE文を単体テーブルに対して...
-
抽出したデータを修正して元の...
-
固定値を含む結合と複数テーブ...
-
集計後の数値が倍になる
-
SQLで複数の条件がある場合
-
データセットのレコード更新が...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
OracleのSQL*PLUSで、デー...
-
決定性有限オートマトン
-
Excelでセルの書式設定を使用し...
-
Excelで、改行がある場合の条件...
-
日本語の表名、列名の利用について
-
GROUP BYを使ったSELECT文の総...
-
C列からH列の範囲を昇順にてソ...
-
SQLについて質問です。 AVG関数...
-
ADOのRecordCountプロパティに...
-
SQL 条件下の任意文字出力について
-
主キーに重複があるレコードの...
-
ACCESSのコンボボックスの右側...
-
COBOLソースに記述するホスト変...
-
SELECT文で列名指定して桁あわ...
-
oracle12c ユーザのパスワー...
-
NULLのみを保持した列を除外し...
-
Oracleでの文字列連結サイズの上限
-
GROUP BYを行った後に結合した...
-
ADO VBA 実行時エラー3021
-
Accessで別テーブルの値をフォ...
おすすめ情報