Como converter Postgresql Boolean para MySQL Tinyint?
Aug 21 2020
Estou tentando migrar uma tabela PostgreSQL para um MySQL com todos os dados, mas não consegui migrar por causa de duas colunas. Essas colunas estão na tabela Postgresql como booleanas e os valores nessas colunas são TRUE ou FALSE (parece uma string). Criei uma coluna booleana no MySQL, mas não aceita os dados TRUE / FALSE. O que devo usar em vez de booleano para esses valores TRUE / FALSE? Tentei o tinyint (4), mas não funciona (devo migrar os dados, pois são TRUE ou FALSE, não t / f ou 1/0).
Um exemplo:
Postgresqltable( id bigserial not null, message_listening boolean, ....... )
Example record: (1, TRUE, .......)
Respostas
1 kmoser Aug 21 2020 at 14:10
Migre-os como VARCHAR(255). Em seguida, para cada uma dessas colunas que você deseja converter em MySQL nativo TINYINT(1):
- Crie outra coluna (por exemplo
test) do tipoTINYINT(1) - Emita o comando
UPDATE tbl SET test = IF( bool_col = 'TRUE', 1, 0 ), ondebool_colé a coluna que você migrou do PostgreSQL que contém a string booleana - Largue a
bool_colcoluna - Renomeie a
testcoluna parabool_col(ou o que você preferir)
Repita as etapas acima para cada coluna que deseja converter.
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
Christopher Nolan uma vez se arrependeu de ter lido o 'roteiro de Pulp Fiction' de Quentin Tarantino