如何在Perl / Catalyst / DBI中使用“ON DUPLICATE KEY UPDATE”?

时间:2011-10-25 23:57:26

标签: mysql perl dbi catalyst

对于我在Catalyst中的学徒级别,它可能太高级了,但是我需要从原始系统移植一些功能,并且使用“ON DUPLICATE KEY UPDATE”的自定义查询来完成。

可以使用Model / Schema / Result完成吗?我是否需要编写自己的完整查询?如何?

以下是原因:

  • 目标表是具有键/值对的多语言和多元化首选项表。
  • 我有3个列索引:theKey,theLang和theVersion。
  • 因此,当我保存theValue时,它会使用这些索引更新现有行,或者根据需要创建一个新行。

1 个答案:

答案 0 :(得分:0)

我假设你使用DBIx :: Class作为你的数据抽象类?然后,您可以使用以下语句:

$resultset->update_or_create({ col => $val, ... });