¿Cómo convertir Postgresql Boolean a MySQL Tinyint?

Aug 21 2020

Estoy intentando migrar una tabla de PostgreSQL a MySQL con todos los datos, pero no pude migrar debido a dos columnas. Estas columnas están en la tabla de Postgresql como booleanos y los valores en estas columnas son VERDADERO o FALSO (parece una cadena). Creé una columna booleana en MySQL pero no acepta los datos VERDADERO / FALSO. ¿Qué debo usar en lugar de booleano para estos valores VERDADERO / FALSO? Probé tinyint (4) pero no funciona (debo migrar los datos ya que son VERDADEROS o FALSOS, no t / f o 1/0).

Un ejemplo:

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

Respuestas

1 kmoser Aug 21 2020 at 14:10

Migrarlos como VARCHAR(255). Luego, para cada una de esas columnas que desea convertir a MySQL nativo TINYINT(1):

  • Cree otra columna (p test. Ej. ) De tipoTINYINT(1)
  • Emita el comando UPDATE tbl SET test = IF( bool_col = 'TRUE', 1, 0 ), dónde bool_colestá la columna que migró de PostgreSQL que contiene la cadena booleana
  • Suelta la bool_colcolumna
  • Cambie el nombre de la testcolumna a bool_col(o lo que prefiera)

Repita los pasos anteriores para cada columna que desee convertir.