避免在RawSQL中自动扩展列

时间:2013-08-02 03:12:10

标签: haskell yesod persistent

为有关此主题的多个问题道歉。我试图根据表中的其他列更新列,到目前为止似乎没有任何工作。我尝试updateWhere然后使用update(Ambiguous Type Error When Using RawSql Update)rawSQL但两者都有问题。

updateWhere不允许其他列名称(仅限值),以便排除。

我尝试使用Update更新rawSQL,但它会自动扩展所有打破更新的实体名称。如果有办法阻止它扩展列名(不是把??没有解决那个问题),那将是完美的。例如,如果我执行: Update table SET X = Y - ? [input values] ,则会创建UPDATE table.f1, table.f2, etc. SET X = Y - ? [input values]

这是我想在后台作为管理员运行的那些查询之一,所以我不关心类型安全。如果有一种盲目执行SQL字符串的方法,那也可以。

我想做的就是:SET X =(Y - Constant)。任何建议将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:1)

我没有尝试过,但是从阅读模块文档来看,我认为rawExecute正是您所寻找的。

您可能还要为persistent提交错误报告。我不认为rawSql应该为除??之外的任何内容进行列名扩展。至少,即使这是期望的行为,也是文档中的遗漏。