我正在尝试使用 MySQL Workbench 工具将 PostgreSQL 数据库转换为 MySQL。似乎模式迁移工作正常 - 没有错误,但是当我尝试迁移数据时 - 我收到大量错误列表,看起来它们都是关于同一件事 - Postgres boolean
字段被获取为极大的整数,无法在 MySQL 中保存为 TINYINT
:
ERROR: `mydb`.`my_table`:Range error fetching field 9 (value 140406775873536, target is MYSQL_TYPE_TINY)
有办法解决吗?
最佳答案
好的,我现在有解决方案了。
原因:
默认情况下,当使用 MySQL Workbench 中的向导将数据从 Postgres 迁移到 MySQL 时,如果 Postgres 字段为 bool 值,它将在 MySQL 中创建 TINYINT(1) 列,这就是我们遇到此错误的原因。
解决方案:
- 将 bool 字段更改为 INT
ALTER TABLE
targetdb.
sample_tableCHANGE COLUMN
fieldfield
INT NULL DEFAULT '1' COMMENT '' ;
使用MySQL迁移向导将会成功。
将该字段更改回 TINYINT(1)。
关于mysql - 获取 PostgreSQL bool 字段时出现范围错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32892513/