Postgresqlブール値をMySQLTinyintに変換する方法は?
Aug 21 2020
PostgreSQLテーブルをすべてのデータを含むMySQLに移行しようとしていますが、2つの列があるため移行できませんでした。これらの列はブール値としてPostgresqlテーブルにあり、これらの列の値はTRUEまたはFALSEです(文字列のように見えます)。MySQLでブール列を作成しましたが、TRUE / FALSEデータを受け入れません。これらのTRUE / FALSE値にブール値の代わりに何を使用する必要がありますか?tinyint(4)を試しましたが、機能しません(t / fまたは1/0ではなくTRUEまたはFALSEであるため、データを移行する必要があります)。
例:
Postgresqltable( id bigserial not null, message_listening boolean, ....... )
Example record: (1, TRUE, .......)
回答
1 kmoser Aug 21 2020 at 14:10
それらをとして移行しますVARCHAR(255)
。次に、ネイティブMySQLに変換する列ごとに次のようにしますTINYINT(1)
。
test
タイプの別の列(例)を作成しますTINYINT(1)
- コマンドを発行します。
UPDATE tbl SET test = IF( bool_col = 'TRUE', 1, 0 )
ここで、bool_col
はPostgreSQLから移行した、ブール文字列を含む列です。 bool_col
列を削除しますtest
列の名前をbool_col
(または任意の名前に)変更します
変換する列ごとに上記の手順を繰り返します。