PostgreSQL 异构插入

标签 postgresql haskell

我有像 ["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?

最佳答案

如果您有类型为 IntStringString 的三列,那么您不能用 [String],你必须使用(Int, String, String)。如果将 vals 更改为此类型,它应该可以工作。

当然,这意味着您生成 vals 的方式也需要改变,因为 map evalVal fields 只有在所有字段都属于同一类型时才有意义。但这的细节取决于 evalVal 的作用。

关于PostgreSQL 异构插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33928848/

相关文章:

php - 在 Laravel 中使用 JSON 函数等 Postgres 功能

Python、Postgresql 从 csv 复制时遇到问题

sql - 在 PostgreSQL 中从一个表中减去另一个表

haskell - 列表理解 - 需要基本案例?

haskell - 在 GHCi 中禁用 IO 结果的打印?

ruby-on-rails - 如何在 rails 中多次插入数据

python - 如何针对大型列表优化功能合并排序

regex - Text.Regex.Posix 中的负前瞻

string - Haskell 中任意长度的多个分隔符分割字符串

sql - PostgreSQL 非标准选择(分组)