mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-22 07:31:57 +00:00
Merge pull request #19521 from adevyatova/annadevyatova-DOCSUP-5634-replace
DOCSUP-5634: REPLACE TABLE
This commit is contained in:
commit
27ddf78ba5
17
docs/en/engines/database-engines/atomic.md
Normal file
17
docs/en/engines/database-engines/atomic.md
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
toc_priority: 32
|
||||||
|
toc_title: Atomic
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
# Atomic {#atomic}
|
||||||
|
|
||||||
|
It is supports non-blocking `DROP` and `RENAME TABLE` queries and atomic `EXCHANGE TABLES t1 AND t2` queries. Atomic database engine is used by default.
|
||||||
|
|
||||||
|
## Creating a Database {#creating-a-database}
|
||||||
|
|
||||||
|
```sql
|
||||||
|
CREATE DATABASE test ENGINE = Atomic;
|
||||||
|
```
|
||||||
|
|
||||||
|
[Original article](https://clickhouse.tech/docs/en/engines/database_engines/atomic/) <!--hide-->
|
@ -8,7 +8,7 @@ toc_title: Introduction
|
|||||||
|
|
||||||
Database engines allow you to work with tables.
|
Database engines allow you to work with tables.
|
||||||
|
|
||||||
By default, ClickHouse uses its native database engine, which provides configurable [table engines](../../engines/table-engines/index.md) and an [SQL dialect](../../sql-reference/syntax.md).
|
By default, ClickHouse uses database engine [Atomic](../../engines/database-engines/atomic.md). It is provides configurable [table engines](../../engines/table-engines/index.md) and an [SQL dialect](../../sql-reference/syntax.md).
|
||||||
|
|
||||||
You can also use the following database engines:
|
You can also use the following database engines:
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name AS [db2.]name2 [ENGINE = engine]
|
|||||||
|
|
||||||
Creates a table with the same structure as another table. You can specify a different engine for the table. If the engine is not specified, the same engine will be used as for the `db2.name2` table.
|
Creates a table with the same structure as another table. You can specify a different engine for the table. If the engine is not specified, the same engine will be used as for the `db2.name2` table.
|
||||||
|
|
||||||
## From a Table Function {#from-a-table-function}
|
### From a Table Function {#from-a-table-function}
|
||||||
|
|
||||||
``` sql
|
``` sql
|
||||||
CREATE TABLE [IF NOT EXISTS] [db.]table_name AS table_function()
|
CREATE TABLE [IF NOT EXISTS] [db.]table_name AS table_function()
|
||||||
@ -260,3 +260,78 @@ CREATE TEMPORARY TABLE [IF NOT EXISTS] table_name
|
|||||||
In most cases, temporary tables are not created manually, but when using external data for a query, or for distributed `(GLOBAL) IN`. For more information, see the appropriate sections
|
In most cases, temporary tables are not created manually, but when using external data for a query, or for distributed `(GLOBAL) IN`. For more information, see the appropriate sections
|
||||||
|
|
||||||
It’s possible to use tables with [ENGINE = Memory](../../../engines/table-engines/special/memory.md) instead of temporary tables.
|
It’s possible to use tables with [ENGINE = Memory](../../../engines/table-engines/special/memory.md) instead of temporary tables.
|
||||||
|
|
||||||
|
## REPLACE TABLE {#replace-table-query}
|
||||||
|
|
||||||
|
'REPLACE' query allows you to update the table atomically.
|
||||||
|
|
||||||
|
!!!note "Note"
|
||||||
|
This query is supported only for [Atomic](../../../engines/database-engines/atomic.md) database engine.
|
||||||
|
|
||||||
|
If you need to delete some data from a table, you can create a new table and fill it with a `SELECT` statement that doesn't retrieve unwanted data, then drop the old table and rename the new one:
|
||||||
|
|
||||||
|
```sql
|
||||||
|
CREATE TABLE myNewTable AS myOldTable;
|
||||||
|
INSERT INTO myNewTable SELECT * FROM myOldTable WHERE CounterID <12345;
|
||||||
|
DROP TABLE myOldTable;
|
||||||
|
RENAME TABLE myNewTable TO myOldTable;
|
||||||
|
```
|
||||||
|
|
||||||
|
Instead of above, you can use the following:
|
||||||
|
|
||||||
|
```sql
|
||||||
|
REPLACE TABLE myOldTable SELECT * FROM myOldTable WHERE CounterID <12345;
|
||||||
|
```
|
||||||
|
|
||||||
|
### Syntax
|
||||||
|
|
||||||
|
{CREATE [OR REPLACE]|REPLACE} TABLE [db.]table_name
|
||||||
|
|
||||||
|
All syntax forms for `CREATE` query also work for this query. `REPLACE` for a non-existent table will cause an error.
|
||||||
|
|
||||||
|
### Examples:
|
||||||
|
|
||||||
|
Consider the table:
|
||||||
|
|
||||||
|
```sql
|
||||||
|
CREATE DATABASE base ENGINE = Atomic;
|
||||||
|
CREATE OR REPLACE TABLE base.t1 (n UInt64, s String) ENGINE = MergeTree ORDER BY n;
|
||||||
|
INSERT INTO base.t1 VALUES (1, 'test');
|
||||||
|
SELECT * FROM base.t1;
|
||||||
|
```
|
||||||
|
|
||||||
|
```text
|
||||||
|
┌─n─┬─s────┐
|
||||||
|
│ 1 │ test │
|
||||||
|
└───┴──────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
Using `REPLACE` query to clear all data:
|
||||||
|
|
||||||
|
```sql
|
||||||
|
CREATE OR REPLACE TABLE base.t1 (n UInt64, s Nullable(String)) ENGINE = MergeTree ORDER BY n;
|
||||||
|
INSERT INTO base.t1 VALUES (2, null);
|
||||||
|
SELECT * FROM base.t1;
|
||||||
|
```
|
||||||
|
|
||||||
|
```text
|
||||||
|
┌─n─┬─s──┐
|
||||||
|
│ 2 │ \N │
|
||||||
|
└───┴────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
Using `REPLACE` query to change table structure:
|
||||||
|
|
||||||
|
```sql
|
||||||
|
REPLACE TABLE base.t1 (n UInt64) ENGINE = MergeTree ORDER BY n;
|
||||||
|
INSERT INTO base.t1 VALUES (3);
|
||||||
|
SELECT * FROM base.t1;
|
||||||
|
```
|
||||||
|
|
||||||
|
```text
|
||||||
|
┌─n─┐
|
||||||
|
│ 3 │
|
||||||
|
└───┘
|
||||||
|
```
|
||||||
|
|
||||||
|
[Original article](https://clickhouse.tech/docs/en/sql-reference/statements/create/table) <!--hide-->
|
||||||
|
17
docs/es/engines/database-engines/atomic.md
Normal file
17
docs/es/engines/database-engines/atomic.md
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
toc_priority: 32
|
||||||
|
toc_title: Atomic
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
# Atomic {#atomic}
|
||||||
|
|
||||||
|
It is supports non-blocking `DROP` and `RENAME TABLE` queries and atomic `EXCHANGE TABLES t1 AND t2` queries. Atomic database engine is used by default.
|
||||||
|
|
||||||
|
## Creating a Database {#creating-a-database}
|
||||||
|
|
||||||
|
```sql
|
||||||
|
CREATE DATABASE test ENGINE = Atomic;
|
||||||
|
```
|
||||||
|
|
||||||
|
[Original article](https://clickhouse.tech/docs/en/engines/database_engines/atomic/) <!--hide-->
|
17
docs/fr/engines/database-engines/atomic.md
Normal file
17
docs/fr/engines/database-engines/atomic.md
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
toc_priority: 32
|
||||||
|
toc_title: Atomic
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
# Atomic {#atomic}
|
||||||
|
|
||||||
|
It is supports non-blocking `DROP` and `RENAME TABLE` queries and atomic `EXCHANGE TABLES t1 AND t2` queries. Atomic database engine is used by default.
|
||||||
|
|
||||||
|
## Creating a Database {#creating-a-database}
|
||||||
|
|
||||||
|
```sql
|
||||||
|
CREATE DATABASE test ENGINE = Atomic;
|
||||||
|
```
|
||||||
|
|
||||||
|
[Original article](https://clickhouse.tech/docs/en/engines/database_engines/atomic/) <!--hide-->
|
17
docs/ja/engines/database-engines/atomic.md
Normal file
17
docs/ja/engines/database-engines/atomic.md
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
toc_priority: 32
|
||||||
|
toc_title: Atomic
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
# Atomic {#atomic}
|
||||||
|
|
||||||
|
It is supports non-blocking `DROP` and `RENAME TABLE` queries and atomic `EXCHANGE TABLES t1 AND t2` queries. Atomic database engine is used by default.
|
||||||
|
|
||||||
|
## Creating a Database {#creating-a-database}
|
||||||
|
|
||||||
|
```sql
|
||||||
|
CREATE DATABASE test ENGINE = Atomic;
|
||||||
|
```
|
||||||
|
|
||||||
|
[Original article](https://clickhouse.tech/docs/en/engines/database_engines/atomic/) <!--hide-->
|
17
docs/zh/engines/database-engines/atomic.md
Normal file
17
docs/zh/engines/database-engines/atomic.md
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
toc_priority: 32
|
||||||
|
toc_title: Atomic
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
# Atomic {#atomic}
|
||||||
|
|
||||||
|
It is supports non-blocking `DROP` and `RENAME TABLE` queries and atomic `EXCHANGE TABLES t1 AND t2` queries. Atomic database engine is used by default.
|
||||||
|
|
||||||
|
## Creating a Database {#creating-a-database}
|
||||||
|
|
||||||
|
```sql
|
||||||
|
CREATE DATABASE test ENGINE = Atomic;
|
||||||
|
```
|
||||||
|
|
||||||
|
[Original article](https://clickhouse.tech/docs/en/engines/database_engines/atomic/) <!--hide-->
|
Loading…
Reference in New Issue
Block a user