Как я могу использовать функцию SQL "replace" из Propel ORM?
У меня есть уникальное поле в таблице, и я хотел бы заменить его новым значением. С SQL я могу просто replace
скорее, чем insert
нормальный способ. Можно ли это сделать в Propel без написания SQL?
1 ответ
Решение
Это не совсем то, что вы ищете, но выполняет то же самое.
Согласно документации MySQL, выполнение ЗАМЕНЫ вызывает УДАЛЕНИЕ и ВСТАВКУ.
Таким образом, вы могли бы потенциально сделать это:
$book->delete();
$book->setDeleted(false);
$book->setId(null);
$book->setNew(true);
$book->save();
Где книга - это объект, который вы заменяете.
Вы можете увидеть фрагмент здесь:
http://sandbox.propelorm.org/c8d3d29
Я искал базу кода Propel и не увидел ни одного кода, ссылающегося на ключевое слово REPLACE в MySQL.
Надеюсь это поможет!