【问题标题】:PHP SQLITE - How to insert new records and update existing records conditionallyPHP SQLITE - 如何有条件地插入新记录和更新现有记录
【发布时间】:2016-08-15 04:25:25
【问题描述】:

试图围绕这一点。我将数据发布到 SQLite 数据库,如果记录不存在,我想插入记录,如果满足某些要求(基本上如果一个字段已更改值)更新现有记录。不确定如何做这样的事情。我已经看到使用 ON DUPLICATE KEY 的示例,但是当有重复时基本上会更新记录。我还需要在更新前检查更改。

有什么想法吗?

【问题讨论】:

  • 实际上并没有“条件插入”之类的东西。插入查询没有where 子句,而on duplicate key update ... 业务几乎可以使它成为有条件的。
  • 为什么只需要在字段改变值的情况下更新?如果您更新并且它没有更改值,那不会什么都不做吗?
  • @Chris 我认为他的意思是如果 A 列的值发生变化,他只想更新 B 列。
  • @Barmar 好的,在这种情况下,最好的方法似乎是只使用应用程序逻辑而不是制作一个相当糟糕的 SQL 查询。
  • SQLite 没有ON DUPLICATE KEY,见stackoverflow.com/questions/23622504/…

标签: php sqlite pdo


【解决方案1】:

我们有两种选择:

1) "ON CONFLICT" 在建表 SQL 中,对于这种情况你应该使用 "ON CONFLICT REPLACE";

2) "UPSER" 在插入 SQL 上,对于这种情况,您应该输入 "ON CONFLICT(field) DO UPDATE SET ..."

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多