Jak przekonwertować Postgresql Boolean na MySQL Tinyint?
Próbuję migrować tabelę PostgreSQL do MySQL ze wszystkimi danymi, ale nie mogłem przeprowadzić migracji z powodu dwóch kolumn. Te kolumny znajdują się w tabeli Postgresql jako wartości logiczne, a wartości w tych kolumnach to PRAWDA lub FAŁSZ (wygląda jak ciąg). Utworzyłem kolumnę logiczną w MySQL, ale nie akceptuje ona danych TRUE / FALSE. Czego powinienem używać zamiast wartości logicznych dla tych wartości PRAWDA / FAŁSZ? Próbowałem tinyint (4), ale to nie działa (muszę migrować dane, ponieważ jest to PRAWDA lub FAŁSZ, a nie t / f lub 1/0).
Przykład:
Postgresqltable( id bigserial not null, message_listening boolean, ....... )
Example record: (1, TRUE, .......)
Odpowiedzi
Przenieś je jako VARCHAR(255). Następnie dla każdej z tych kolumn, które chcesz przekonwertować na natywny MySQL TINYINT(1):
- Utwórz kolejną kolumnę (np.
test) TypuTINYINT(1) - Wydaj polecenie
UPDATE tbl SET test = IF( bool_col = 'TRUE', 1, 0 ), gdziebool_coljest kolumna migrowana z PostgreSQL, która zawiera ciąg logiczny - Upuść
bool_colkolumnę - Zmień nazwę
testkolumny nabool_col(lub cokolwiek wolisz)
Powtórz powyższe kroki dla każdej kolumny, którą chcesz przekonwertować.