Come convertire Postgresql Boolean in MySQL Tinyint?
Aug 21 2020
Sto cercando di migrare una tabella PostgreSQL a MySQL con tutti i dati, ma non sono riuscito a migrare a causa di due colonne. Queste colonne sono nella tabella Postgresql come booleane e i valori in queste colonne sono VERO o FALSO (sembra una stringa). Ho creato una colonna booleana in MySQL ma non accetta i dati VERO / FALSO. Cosa dovrei usare al posto di booleano per questi valori VERO / FALSO? Ho provato tinyint (4) ma non funziona (devo migrare i dati perché è VERO o FALSO, non t / f o 1/0).
Un esempio:
Postgresqltable( id bigserial not null, message_listening boolean, ....... )
Example record: (1, TRUE, .......)
Risposte
1 kmoser Aug 21 2020 at 14:10
Migrali come VARCHAR(255)
. Quindi, per ciascuna di quelle colonne che desideri convertire in MySQL nativo TINYINT(1)
:
- Crea un'altra colonna (ad esempio
test
) di tipoTINYINT(1)
- Esegui il comando
UPDATE tbl SET test = IF( bool_col = 'TRUE', 1, 0 )
, dov'èbool_col
la colonna migrata da PostgreSQL che contiene la stringa booleana - Rilascia la
bool_col
colonna - Rinomina la
test
colonna inbool_col
(o come preferisci)
Ripeti i passaggi precedenti per ogni colonna che desideri convertire.