Postgresql Boolean MySQL Tinyint'e Nasıl Dönüştürülür?

Aug 21 2020

Bir PostgreSQL tablosunu tüm verilerle bir MySQL'e taşımaya çalışıyorum, ancak iki sütun nedeniyle geçiş yapamadım. Bu sütunlar, Boole olarak Postgresql tablosunda yer alır ve bu sütunlardaki değerler TRUE veya FALSE şeklindedir (bir dizge gibi görünür). MySQL'de bir boolean sütun oluşturdum ama TRUE / FALSE verilerini kabul etmiyor. Bu DOĞRU / YANLIŞ değerler için boole yerine ne kullanmalıyım? Tinyint (4) 'ü denedim ama işe yaramıyor (Verileri TRUE veya FALSE olduğu için taşımalıyım, t / f veya 1/0 değil).

Bir örnek:

Postgresqltable( id bigserial not null, message_listening boolean, ....... ) 
Example record: (1, TRUE, .......)

Yanıtlar

1 kmoser Aug 21 2020 at 14:10

Olarak taşıyın VARCHAR(255). Ardından, yerel MySQL'e dönüştürmek istediğiniz bu sütunların her biri için TINYINT(1):

  • Türünde başka bir sütun (örneğin test) oluşturunTINYINT(1)
  • Boolean dizesini içeren PostgreSQL'den taşıdığınız sütun UPDATE tbl SET test = IF( bool_col = 'TRUE', 1, 0 )nerede komutu verinbool_col
  • bool_colSütunu bırakın
  • testSütunu bool_col(veya tercih ettiğiniz şekilde) yeniden adlandırın

Dönüştürmek istediğiniz her sütun için yukarıdaki adımları tekrarlayın.