Как я могу использовать ON DUPLICATE KEY UPDATE в Perl / Catalyst / DBI?

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

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

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

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

person Nacho B    schedule 25.10.2011    source источник


Ответы (1)


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

$resultset->update_or_create({ col => $val, ... });
person Mauritz Hansen    schedule 11.09.2012