Как я могу использовать функцию 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.

Надеюсь это поможет!

Другие вопросы по тегам