2013-03-25 3 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, если существует запись/id, и определить, следует ли обновлять или создавать новые?

Im использованием Postgres 9.1.8

+2

http://www.depesz.com/2012/06/10/why-is-upsert-so-complicated/ –

+0

Может кто-нибудь объяснить, где я использую «CREATE FUNCTION» ? Я могу сделать это в оболочке psql, сделать файл на сервере, использовать его в php? Должен ли я писать функцию для каждой таблицы, которую мне нужно обновить? –

ответ

Смежные вопросы