- ベストアンサー
booleanデータのcsv出力形式
postgresqlのデータをcsvテキストに出力してmysqlに入れたら、booleanデータがmysqlではすべて 0 になりました。 postgresqlのbooleanはt/f表現であり、mysqlでは1/0表現のためと思いますが、うまく処理する方法はないでしょうか? 2011 Dec. 18.
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
CSVのテキストに出力するために COPY TO を使っているのならば、 booleanをintegerにキャストして出力すると 1/0 になります。 COPY (SELECT b::int FROM (VALUES(true),(false)) T(b)) TO 'xxx.csv' WITH (FORMAT 'csv')
お礼
gacky-79さま、ありがとうございます。 試してみたところ、 ERROR: must be superuser to COPY to or from a file となり、superuserを忘れてしまっていて進めなくなりました。 2011 Dec. 23.
補足
postgresスーパーユーザのパスワードを設定し直して試すことができました。 COPY ( SELECT column::int FROM table ) TO STDOUT WITH (FORMAT 'csv'); では ERROR: syntax error at or near "(" LINE 1: ...TO STDOUT WITH (FORMAT 'c... ^ となります。 COPY ( SELECT column::int FROM table ) TO STDOUT; では 書式がcsvではありませんが、論理値が0/1に変換されてテキスト出力されます。 postgresqlのバージョンは8.3です。 2011 Dec. 23.