如果密钥存在于php,则更新postgresql

时间:2013-03-25 11:12:58

标签: php postgresql pdo

我将我的php应用程序转换为使用postgresql而不是mysql。

在使用PDO之前我有这个功能:

$stmt = $db->prepare("INSERT INTO $table(id,name,info) VALUES(:id,:name,:info) ON DUPLICATE KEY UPDATE name=:name,info=:info");
$stmt->execute(array(':id' => $id, ':name' => $name, :info' => $info));

如果该密钥不存在,则会创建一个新条目,否则会更新该条目。

如何使用postgresql做一些相同的事情?

我读过一些文章,但没有人清楚我要做什么。我是否需要为此编写触发器或规则?

或者,如果条目/ ID存在,我是否在php中编写支票,并确定它是应该更新还是创建新的?

我正在使用postgres 9.1.8

1 个答案:

答案 0 :(得分:1)

http://en.wikipedia.org/wiki/Upsert

您可以通过准备运行merge命令然后执行它。

我想这应该可行