Bagaimana cara mengkonversi Postgresql Boolean ke MySQL Tinyint?

Aug 21 2020

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

1 kmoser Aug 21 2020 at 14:10

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 mana bool_colkolom yang Anda migrasikan dari PostgreSQL yang berisi string Boolean
  • Jatuhkan bool_colkolomnya
  • Ubah nama testkolom menjadi bool_col(atau apa pun yang Anda inginkan)

Ulangi langkah-langkah di atas untuk setiap kolom yang ingin Anda konversi.