我有像 ["0", "s", "a"]
这样的列表,它是在评估过程中生成的,该列表应该用 postgresql-simple< 插入到 PostgreSQL 中
第一列是 bigint
,但是当我使用
let vals = map evalVal field :: [String]
execute conn query vals
我有错误的类型转换错误
Incompatible {errSQLType = "int4", errSQLTableOid = Just (Oid 25340),
如何让库理解第一个值是 int?
最佳答案
如果您有类型为 Int
、String
、String
的三列,那么您不能用 [String]
,你必须使用(Int, String, String)
。如果将 vals
更改为此类型,它应该可以工作。
当然,这意味着您生成 vals
的方式也需要改变,因为 map evalVal fields
只有在所有字段都属于同一类型时才有意义。但这的细节取决于 evalVal
的作用。
关于PostgreSQL 异构插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33928848/