2013-03-25 27 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

回答