2013-03-25 29 views
-1

Im将我的php应用程序转换为使用postgresql而不是mysql。更新postgresql如果密钥存在与使用php

之前,我有使用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相同?

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

或者我写一个检查在PHP中,如果entry/id存在,并确定它是否应该更新或创建新的?

进出口使用的Postgres 9.1.8

+2

http://www.depesz.com/2012/06/10/why-is-upsert-so-complicated/ – 2013-03-25 11:44:34

+0

有人能解释一下,我用了“创建函数” ?我在psql shell中做,在服务器上创建一个文件,在php中使用它?我需要为每个需要更新的表编写函数吗? – 2013-03-25 12:40:45

回答