Wie konvertiere ich Postgresql Boolean in MySQL Tinyint?
Ich versuche, eine PostgreSQL-Tabelle mit allen Daten auf MySQL zu migrieren, konnte jedoch aufgrund von zwei Spalten nicht migrieren. Diese Spalten befinden sich in der Postgresql-Tabelle als Boolescher Wert, und die Werte in diesen Spalten sind TRUE oder FALSE (es sieht aus wie eine Zeichenfolge). Ich habe in MySQL eine boolesche Spalte erstellt, die jedoch die TRUE / FALSE-Daten nicht akzeptiert. Was soll ich für diese TRUE / FALSE-Werte anstelle von Boolean verwenden? Ich habe tinyint (4) ausprobiert, aber es funktioniert nicht (ich muss die Daten migrieren, da sie WAHR oder FALSCH sind, nicht t / f oder 1/0).
Ein Beispiel:
Postgresqltable( id bigserial not null, message_listening boolean, ....... )
Example record: (1, TRUE, .......)
Antworten
Migrieren Sie sie als VARCHAR(255). Dann möchten Sie für jede dieser Spalten, die Sie in natives MySQL konvertieren möchten TINYINT(1):
- Erstellen Sie eine weitere Spalte (z. B.
test) vom TypTINYINT(1) - Geben Sie den Befehl aus
UPDATE tbl SET test = IF( bool_col = 'TRUE', 1, 0 ), wobeibool_colsich die Spalte befindet, die Sie von PostgreSQL migriert haben und die die Boolesche Zeichenfolge enthält - Löschen Sie die
bool_colSpalte - Benennen Sie die
testSpalte inbool_col(oder was auch immer Sie bevorzugen) um.
Wiederholen Sie die obigen Schritte für jede Spalte, die Sie konvertieren möchten.