Comment convertir Postgresql Boolean en MySQL Tinyint?
J'essaie de migrer une table PostgreSQL vers un MySQL avec toutes les données, mais je n'ai pas pu migrer à cause de deux colonnes. Ces colonnes sont dans la table Postgresql en tant que booléen et les valeurs de ces colonnes sont TRUE ou FALSE (cela ressemble à une chaîne). J'ai créé une colonne booléenne dans MySQL mais elle n'accepte pas les données TRUE / FALSE. Que dois-je utiliser au lieu de booléen pour ces valeurs TRUE / FALSE? J'ai essayé tinyint (4) mais cela ne fonctionne pas (je dois migrer les données car elles sont TRUE ou FALSE, pas t / f ou 1/0).
Un exemple:
Postgresqltable( id bigserial not null, message_listening boolean, ....... )
Example record: (1, TRUE, .......)
Réponses
Faites-les migrer en tant que VARCHAR(255). Ensuite, pour chacune de ces colonnes que vous souhaitez convertir en MySQL natif TINYINT(1):
- Créer une autre colonne (par exemple
test) de typeTINYINT(1) - Exécutez la commande
UPDATE tbl SET test = IF( bool_col = 'TRUE', 1, 0 ), où sebool_coltrouve la colonne que vous avez migrée de PostgreSQL qui contient la chaîne booléenne - Déposez la
bool_colcolonne - Renommez la
testcolonne enbool_col(ou ce que vous préférez)
Répétez les étapes ci-dessus pour chaque colonne que vous souhaitez convertir.