Как преобразовать Postgresql Boolean в MySQL Tinyint?
Я пытаюсь перенести таблицу PostgreSQL в MySQL со всеми данными, но мне не удалось выполнить миграцию из-за двух столбцов. Эти столбцы в таблице Postgresql являются логическими, а значения в этих столбцах - ИСТИНА или ЛОЖЬ (это выглядит как строка). Я создал логический столбец в MySQL, но он не принимает данные TRUE / FALSE. Что мне следует использовать вместо логического для этих значений ИСТИНА / ЛОЖЬ? Я попробовал tinyint (4), но это не сработало (я должен перенести данные, поскольку они ИСТИНА или ЛОЖЬ, а не t / f или 1/0).
Пример:
Postgresqltable( id bigserial not null, message_listening boolean, ....... )
Example record: (1, TRUE, .......)
Ответы
Перенесите их как VARCHAR(255). Затем для каждого из этих столбцов, которые вы хотите преобразовать в собственный MySQL TINYINT(1):
- Создайте еще один столбец (например
test) типаTINYINT(1) - Введите команду
UPDATE tbl SET test = IF( bool_col = 'TRUE', 1, 0 ), гдеbool_colнаходится столбец, который вы перенесли из PostgreSQL, который содержит логическую строку - Отбросьте
bool_colстолбец - Переименуйте
testстолбец вbool_col(или как хотите)
Повторите вышеуказанные шаги для каждого столбца, который вы хотите преобразовать.