Làm thế nào để chuyển đổi Postgresql Boolean sang MySQL Tinyint?
Tôi đang cố gắng di chuyển bảng PostgreSQL sang MySQL với tất cả dữ liệu, nhưng tôi không thể di chuyển do có hai cột. Các cột này nằm trong bảng Postgresql dưới dạng boolean và các giá trị trong các cột này là TRUE hoặc FALSE (nó trông giống như một chuỗi). Tôi đã tạo một cột boolean trong MySQL nhưng nó không chấp nhận dữ liệu TRUE / FALSE. Tôi nên sử dụng gì thay vì boolean cho các giá trị TRUE / FALSE này? Tôi đã thử tinyint (4) nhưng nó không hoạt động (tôi phải di chuyển dữ liệu vì nó là TRUE hoặc FALSE, không phải t / f hoặc 1/0).
Một ví dụ:
Postgresqltable( id bigserial not null, message_listening boolean, ....... )
Example record: (1, TRUE, .......)
Trả lời
Di chuyển chúng dưới dạng VARCHAR(255). Sau đó, đối với mỗi cột bạn muốn chuyển đổi sang MySQL gốc TINYINT(1):
- Tạo một cột khác (ví dụ
test) loạiTINYINT(1) - Đưa ra lệnh
UPDATE tbl SET test = IF( bool_col = 'TRUE', 1, 0 ), đâubool_collà cột bạn đã di chuyển từ PostgreSQL có chứa chuỗi Boolean - Thả
bool_colcột - Đổi tên
testcột thànhbool_col(hoặc bất kỳ thứ gì bạn thích)
Lặp lại các bước trên cho mỗi cột bạn muốn chuyển đổi.