summaryrefslogtreecommitdiff
path: root/includes/database/mysql
diff options
context:
space:
mode:
Diffstat (limited to 'includes/database/mysql')
-rw-r--r--includes/database/mysql/query.inc6
1 files changed, 6 insertions, 0 deletions
diff --git a/includes/database/mysql/query.inc b/includes/database/mysql/query.inc
index 751137602..d5cb36505 100644
--- a/includes/database/mysql/query.inc
+++ b/includes/database/mysql/query.inc
@@ -143,6 +143,12 @@ class MergeQuery_mysql extends MergeQuery {
}
}
+ // If the merge query has no fields to update, add the first key as an
+ // update field so the query will not fail if a duplicate key is found.
+ if (!$update_fields && !$this->expressionFields) {
+ $update_fields = array_slice($this->keyFields, 0, 1, TRUE);
+ }
+
$insert_fields = $this->insertFields + $this->keyFields;
$query = "INSERT INTO {" . $this->table . '} (' . implode(', ', array_keys($insert_fields)) . ') VALUES ';