【问题标题】:Change MYSQL Query UPDATE to REPLACE INTO将 MYSQL 查询 UPDATE 更改为 REPLACE INTO
【发布时间】:2013-07-02 07:00:12
【问题描述】:

查询似乎很容易转换,因为我有非常具体的要求,如果它存在,只需更新 else 插入。但是我很难转换它..可能是因为它使用了多个连接。但是有一个问题,没有主键。如果有人能破解它并让我的生活更轻松,我将不胜感激...... :-)

表格只有三列

ASSET_ASSOCIATION
-----------------

ASSET_ID | ASSET_FIELD_ID | ASSET_ASSOCIATED_ID

10        46               15
12        46               37
10        21               8

我正在使用的查询是

.....

我还有希望吗??非常感谢任何帮助.....

【问题讨论】:

  • 如果没有唯一键,我认为你不能在一个语句中做到这一点。您需要尝试更新,检查是否更新了任何行,然后在必要时插入。
  • 你能创建一个PK或UNIQUE索引吗?
  • 很遗憾我不能换桌子...

标签: mysql join sql-update


【解决方案1】:

http://dev.mysql.com/doc/refman/5.6/en/replace.html

REPLACE 的工作方式与 INSERT 完全相同,只是如果 表具有与 PRIMARY KEY 或 UNIQUE 的新行相同的值 index,在插入新行之前删除旧行。

没有主键或唯一索引,没有REPLACE,句号。

没有主键的表(几乎总是)是一个巨大的错误。与 DBA(或具有足够权限的人)联系,让他/她知道表上没有主键。她/他会在您不要求的情况下添加主键。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-05
    • 2013-03-26
    • 1970-01-01
    • 2018-11-08
    • 2013-03-20
    • 2020-12-29
    • 1970-01-01
    • 2010-09-05
    相关资源
    最近更新 更多