8.3.x database.inc db_merge($table, array $options = [])
8.0.x database.inc db_merge($table, array $options = array())
8.1.x database.inc db_merge($table, array $options = array())
8.2.x database.inc db_merge($table, array $options = array())
8.4.x database.inc db_merge($table, array $options = [])
7.x database.inc db_merge($table, array $options = array())

Returns a new MergeQuery object for the active database.


string $table: Name of the table to associate with this query.

array $options: An array of options to control how the query operates.

Return value

\Drupal\Core\Database\Query\Merge A new Merge object for this connection.


as of Drupal 8.0.x, will be removed in Drupal 9.0.0. Instead, get a database connection injected into your service from the container and call merge() on it. For example, $injected_database->merge($table, $options);

See also



Related topics

18 calls to db_merge()
GarbageCollectionTest::testGarbageCollection in core/tests/Drupal/KernelTests/Core/KeyValueStore/GarbageCollectionTest.php
Tests garbage collection.
history_write in core/modules/history/history.module
Updates 'last viewed' timestamp of the specified entity for the current user.
hook_entity_predelete in core/lib/Drupal/Core/Entity/entity.api.php
Act before entity deletion.
hook_ENTITY_TYPE_predelete in core/lib/Drupal/Core/Entity/entity.api.php
Act before entity deletion of a particular entity type.
locale_translation_update_file_history in core/modules/locale/locale.module
Updates the {locale_file} table.

... See full list


core/includes/database.inc, line 183
Core systems for the database layer.


function db_merge($table, array $options = array()) {
  if (empty($options['target']) || $options['target'] == 'replica') {
    $options['target'] = 'default';
  return Database::getConnection($options['target'])->merge($table, $options);