Postgresql 부울을 MySQL Tinyint로 변환하는 방법?

Aug 21 2020

모든 데이터가 포함 된 PostgreSQL 테이블을 MySQL로 마이그레이션하려고하는데 두 개의 열로 인해 마이그레이션 할 수 없습니다. 이러한 열은 Postgresql 테이블에 부울로 있고이 열의 값은 TRUE 또는 FALSE (문자열처럼 보임)입니다. MySQL에서 부울 열을 만들었지 만 TRUE / FALSE 데이터를 받아들이지 않습니다. 이러한 TRUE / FALSE 값에 대해 부울 대신 무엇을 사용해야합니까? tinyint (4) 시도했지만 작동하지 않습니다 (t / f 또는 1/0이 아닌 TRUE 또는 FALSE이므로 데이터를 마이그레이션해야합니다).

예 :

Postgresqltable( id bigserial not null, message_listening boolean, ....... ) 
Example record: (1, TRUE, .......)

답변

1 kmoser Aug 21 2020 at 14:10

파일을 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(또는 원하는대로)

변환하려는 각 열에 대해 위의 단계를 반복하십시오.