【问题标题】:Update postgresql if the key exist with php [duplicate]如果 php 存在密钥,则更新 postgresql [重复]
【发布时间】:2013-03-25 11:12:57
【问题描述】:

我正在将我的 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

【问题讨论】:

  • 有人能解释一下我在哪里使用“CREATE FUNCTION”吗?我是否在 psql shell 中执行此操作,在服务器上创建一个文件,在 php 中使用它?我是否必须为需要更新的每个表编写函数?

标签: php postgresql pdo


【解决方案1】:

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

你可以通过prepare运行合并命令然后执行它。

我想这应该可行

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-05
    • 1970-01-01
    • 1970-01-01
    • 2019-10-17
    • 2012-12-13
    • 2013-03-07
    • 2013-09-17
    • 2017-04-19
    相关资源
    最近更新 更多