Bagaimana cara mengkonversi Postgresql Boolean ke MySQL Tinyint?
Saya mencoba untuk memigrasi tabel PostgreSQL ke MySQL dengan semua data, tetapi saya tidak dapat bermigrasi karena dua kolom. Kolom ini ada di tabel Postgresql sebagai boolean dan nilai di kolom ini BENAR atau SALAH (terlihat seperti string). Saya membuat kolom boolean di MySQL tetapi tidak menerima data TRUE / FALSE. Apa yang harus saya gunakan sebagai pengganti boolean untuk nilai TRUE / FALSE ini? Saya mencoba tinyint (4) tetapi tidak berhasil (saya harus memigrasi data karena BENAR atau SALAH, bukan t / f atau 1/0).
Sebuah contoh:
Postgresqltable( id bigserial not null, message_listening boolean, ....... )
Example record: (1, TRUE, .......)
Jawaban
Migrasikan mereka sebagai VARCHAR(255). Kemudian, untuk setiap kolom yang ingin Anda ubah ke MySQL asli TINYINT(1):
- Buat kolom lain (misalnya
test) dengan tipeTINYINT(1) - Berikan perintah
UPDATE tbl SET test = IF( bool_col = 'TRUE', 1, 0 ), di manabool_colkolom yang Anda migrasikan dari PostgreSQL yang berisi string Boolean - Jatuhkan
bool_colkolomnya - Ubah nama
testkolom menjadibool_col(atau apa pun yang Anda inginkan)
Ulangi langkah-langkah di atas untuk setiap kolom yang ingin Anda konversi.