如何使用 Propel ORM 中的 SQL 的 "replace" 函数?

How can I use SQL's "replace" function from Propel ORM?

我在 table 中有一个唯一字段,我想用一个新值替换它。使用 SQL,我可以简单地 replace 而不是正常的 insert。这可以在 Propel 中完成而不写 SQL?

这不是您要找的东西,但可以完成同样的事情。

根据 MySQL 文档,执行 REPLACE 会导致 DELETE 和 INSERT。

所以你可以这样做:

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

其中 book 是您要替换的对象。

您可以在此处查看片段:

http://sandbox.propelorm.org/c8d3d29

我搜索了 Propel 代码库,没有看到任何引用 MySQL 的 REPLACE 关键字的代码。

希望对您有所帮助!