Как я могу использовать «ON DUPLICATE KEY UPDATE» в Perl / Catalyst / DBI? - PullRequest
0 голосов
/ 26 октября 2011

Возможно, он слишком продвинут для моего уровня ученика в Catalyst, но мне нужно перенести некоторые функции из исходной системы, и это делается с помощью пользовательских запросов с «ON DUPLICATE KEY UPDATE».

Можно ли это сделать с помощью модели / схемы / результата? Нужно ли мне написать свой собственный полный запрос ?, как?

Вот причина, на всякий случай:

  • Таблица назначения - это мультиязычная и многоверсионная таблица предпочтений с парами ключ / значение.
  • У меня есть 3 индекса столбцов: theKey, theLang и theVersion.
  • Итак, когда я сохраняю значение, оно обновляет существующую строку с использованием этих индексов или создает новую, если это необходимо.

1 Ответ

0 голосов
/ 11 сентября 2012

Я предполагаю, что вы используете DBIx :: Class в качестве класса абстракции данных? Затем вы можете использовать следующее утверждение:

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