MySQLの tinyint(1) 型を転送する際、自動的に BOOLEAN 型に変換されてしまいます。これを防ぐには、転送設定のクエリで明示的に CAST して、 INT 型として送信する必要があります。
MySQLで tinyint(1) 型に格納されたデータ(0、1、2など)を転送する際、以下のように自動変換されます。
-
0→FALSE -
1以上 →TRUE
結果として、元データの「2」が TRUE として保存され、データが失われてしまいます。
原因
TROCCOの内部で利用しているEmbulkの仕様により、 tinyint(1) は BOOLEAN 型と解釈されます。これはMySQLが BOOLEAN 型を内部的に tinyint(1) として扱っているためです。
対処法
転送設定のSTEP1のクエリで CAST 関数を使用して、 tinyint(1) を INT 型に明示的に変換してください。
SELECT CAST(column_name AS SIGNED) AS column_name
FROM table_name
具体例
MySQLテーブルに複数のカラムがある場合、以下のように指定します。
SELECT
id,
CAST(status_flag AS SIGNED) AS status_flag,
name,
created_at
FROM users
このようにすることで、 tinyint(1) のデータは INT 型のまま転送できます。
コメント
0件のコメント
記事コメントは受け付けていません。