> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-vortex-format.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Le moteur de base de données Overlay expose l’union des tables de plusieurs bases de données existantes.

# Overlay

Le moteur de base de données `Overlay` expose l’union des tables de plusieurs bases de données existantes.

<h2 id="creating-a-database">
  Créer une base de données
</h2>

```sql theme={null}
CREATE DATABASE overlay_db
ENGINE = Overlay(db1[, db2, ...]);
```

Un nom de table est résolu dans les bases de données sources dans l'ordre où elles sont indiquées : la première base de données contenant une table portant ce nom l'emporte.

La base de données ne possède aucune table. Chaque table de la base de données de surcouche se comporte comme une table [`Alias`](/fr/reference/engines/table-engines/special/alias) pointant vers la table de la base de données source : les lectures et les écritures sont redirigées vers la table source.
Les opérations `CREATE`, `DROP`, `RENAME`, `ATTACH` et `DETACH` sur les tables de la base de données de surcouche ne sont pas prises en charge.

Les bases de données sources sont résolues par leur nom à chaque accès : lorsqu'une base de données source est supprimée, ses tables disparaissent de la base de données de surcouche, puis réapparaissent lorsqu'elle est recréée.
Une base de données `Overlay` ne peut pas servir de source à une autre base de données `Overlay`.

<h2 id="access-control">
  Contrôle d'accès
</h2>

Comme pour une table `Alias`, l'utilisation d'une table de la base de données de surcouche nécessite les grants à la fois sur la base de données de surcouche et sur la table source, et les politiques de ligne des deux s'appliquent.
Une table de la base de données de surcouche n'est visible que par un utilisateur capable de voir à la fois la base de données de surcouche et la table source (privilège `SHOW TABLES` sur les deux).
Un nom est résolu dans la première base de données source où l'utilisateur peut voir une table portant ce nom : une table masquée pour l'utilisateur est ignorée, comme si elle n'existait pas.

<h2 id="example">
  Exemple
</h2>

```sql theme={null}
CREATE DATABASE db1;
CREATE DATABASE db2;
CREATE TABLE db1.a (x UInt8) ENGINE = Memory;
CREATE TABLE db2.b (y String) ENGINE = Memory;
INSERT INTO db2.b VALUES ('Hello');
CREATE DATABASE overlay_db ENGINE = Overlay(db1, db2);
SELECT name, engine FROM system.tables WHERE database = 'overlay_db' ORDER BY name;
SELECT * FROM overlay_db.b;
```

```response theme={null}
┌─name─┬─engine─┐
│ a    │ Alias  │
│ b    │ Alias  │
└──────┴────────┘
┌─y─────┐
│ Hello │
└───────┘
```
