我有一个无缘无故开始失败的存储过程。嗯,一定有,但我找不到!
这是我之前多次遵循的过程,没有问题。
源服务器工作正常!
我正在源服务器上对数据库进行 pg_dump 并将其导入另一台服务器 - 这很好,我可以看到所有数据并进行更新。
然后我在导入的数据库上运行一个存储过程,该过程在具有 2 个相同模式的数据库上执行以下操作 -
For each table in schema1
Truncate table in schema2
INSERT INTO schema2."table" SELECT * FROM schema1."table" WHERE "Status" in ('A','N');
Next
然而,这给了我一个错误,而以前没有 - 错误是
***错误** *
错误:列“HBA”是布尔类型,但表达式是整数类型 SQL 状态:42804 提示:您需要重写或强制转换表达式。
为什么会出现这个问题 - 我上次执行此过程与这次的唯一区别是,现在有问题的表添加了一个额外的列,因此“HBA”布尔列不是最后一个字段。但是为什么它会在原始数据库中工作!
我试过删除所有数据,删除和重建表,这些都失败了。但是,如果我删除列并将其重新添加到 if 有效 - 布尔字段是否意味着它们需要成为最后一个字段!
任何帮助都非常感激。
使用 Postgres 9.1