【发布时间】:2014-12-04 22:36:56
【问题描述】:
我需要编写一个 MySQL 查询来插入或更新一些字段。我见过ON DUPLICATE KEY,但我的字段不是PRIMARY KEY 或UNIQUE,只有组合是唯一的。这是字段列表:
ID (PRIMARY KEY AUTOINCREMENT BIGINT)、用户 (BIGINT)、创建者 (BIGINT)、类型 (TINYINT)、值 (BIGINT)、日期 (INT)、读取 (TINYINT)、擦除 (TINYINT)。
表名是通知(如果有用的话)。如果用户、创建者、类型、值与要插入的值相同(例如AND),我需要插入新记录或更新现有记录。我该怎么做?
【问题讨论】:
-
在组合上添加唯一键。一个键可以在多个字段上
-
如果存在则插入或更新是replace 的用途
-
@Dagon,例如在字段 USER 上使用 UNIQUE,之后我可以插入两行具有相同 USER 值但其他不同的行?
-
er 不,如果您有重复项,这将不是一个唯一字段。
-
有一种方法可以将 INSERT/UPDATE 与 ON DUPLICATE 用于使用多个 ID 的 UNIQUE 表单元格,来自 SELECT,而其他字段信息是静态的?