gpt4 book ai didi

mysql - 获取 PostgreSQL bool 字段时出现范围错误

转载 作者:行者123 更新时间:2023-11-28 23:49:19 25 4
gpt4 key购买 nike

我正在尝试使用 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) 列,这就是我们遇到此错误的原因。

解决方案:

  1. 将 bool 字段更改为 INT

ALTER TABLEtargetdb.sample_tableCHANGE COLUMNfieldfieldINT NULL DEFAULT '1' COMMENT '';

  1. 使用 MySQL 迁移向导会成功。

  2. 将该字段改回 TINYINT(1)。

关于mysql - 获取 PostgreSQL bool 字段时出现范围错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32892513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com