Propel: объединение текста и содержимого полей

В настоящее время я занимаюсь рефакторингом некоторых вещей для использования Propel.

В настоящее время у нас есть функция, которая добавляет текст в поле «история», например:

UPDATE tablename 
  SET history = CONCAT(history, NOW(), "add this text to history") 
  WHERE ...;

Мы делаем это, используя функцию CONCAT(), чтобы сделать изменение атомарным. В противном случае (если бы мы прочитали значение поля где-то раньше, а затем соединили в PHP и обновили строку), возможно, между ними появится другой скрипт и изменяет поле, и тогда эти изменения будут потеряны.

Как я могу выполнить этот CONCAT(..) в Propel? Мы используем MySQL и MyISAM, поэтому просто обернуть все это в транзакцию не получится.


person pableu    schedule 23.05.2011    source источник


Ответы (1)


Вы можете выполнить необработанный SQL, используя Propel. Я не думаю, что это возможно по-другому.

person Jan    schedule 25.06.2011
comment
Спасибо, я тоже думаю, что нет лучшего способа сделать это. - person pableu; 12.07.2011