diff options
Diffstat (limited to 'includes/database/mysql')
-rw-r--r-- | includes/database/mysql/query.inc | 6 |
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 '; |