2015-10-26 3 views

ответ

1

Это не то, что вы ищете, но выполняет то же самое.

Согласно документам MySQL, выполнение REPLACE вызывает DELETE и INSERT.

Таким образом, вы могли бы потенциально сделать это:

$book->delete(); 
$book->setDeleted(false); 
$book->setId(null); 
$book->setNew(true); 
$book->save(); 

Где книга представляет собой объект, который вы заменяете.

Вы можете видеть фрагмент кода здесь:

http://sandbox.propelorm.org/c8d3d29

Я искал базу кода Propel и не видел никакого кода со ссылкой на REPLACE ключевое слово в MySQL.

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

+1

Да, но то, что тонко опущено документом MySQL, заключается в том, что REPLACE хорошо работает, когда дело доходит до использования внешних ключей, в которых DELETE + INSERT не будет работать из-за этих FK. –

+0

Это мило с их стороны. – William