ClickHouse/docs/en/operations/table_engines/mysql.md
BayoNet e3c2a2afd9 Clarifications for MySQL table engine and toStartOfMonth function (#3440)
* Update of english version of descriprion of the table function `file`.

* New syntax for ReplacingMergeTree.
Some improvements in text.

* Significantly change article about SummingMergeTree.
Article is restructured, text is changed in many places of the document. New syntax for table creation is described.

* Descriptions of AggregateFunction and AggregatingMergeTree are updated. Russian version.

* New syntax for new syntax of CREATE TABLE

* Added english docs on Aggregating, Replacing and SummingMergeTree.

* CollapsingMergeTree docs. English version.

* 1. Update of CollapsingMergeTree. 2. Minor changes in markup

* Update aggregatefunction.md

* Update aggregatefunction.md

* Update aggregatefunction.md

* Update aggregatingmergetree.md

* GraphiteMergeTree docs update.
New syntax for creation of Replicated* tables.
Minor changes in *MergeTree tables creation syntax.

* Markup fix

* Markup and language fixes

* Clarification in the CollapsingMergeTree article

* Clarifications for MySQL table engine and toStartOfMonth function
2018-10-22 21:45:23 +03:00

1.7 KiB

MySQL

The MySQL engine allows you to perform SELECT queries on data that is stored on a remote MySQL server.

Call format:

MySQL('host:port', 'database', 'table', 'user', 'password'[, replace_query, 'on_duplicate_clause']);

Call parameters

  • host:port — Address of the MySQL server.

  • database — Database name on the MySQL server.

  • table — Name of the table.

  • user — The MySQL User.

  • password — User password.

  • replace_query — Flag that sets query substitution INSERT INTO to REPLACE INTO. If replace_query=1, the query is replaced.

  • on_duplicate_clause — Adds the ON DUPLICATE KEY on_duplicate_clause expression to the INSERT query.

    Example: INSERT INTO t (c1,c2) VALUES ('a', 2) ON DUPLICATE KEY UPDATE c2 = c2 + 1, where on_duplicate_clause is UPDATE c2 = c2 + 1. See MySQL documentation to find which on_duplicate_clause you can use with ON DUPLICATE KEY clause.

    To specify on_duplicate_clause you need to pass 0 to the replace_query parameter. If you simultaneously pass replace_query = 1 and on_duplicate_clause, ClickHouse generates an exception.

At this time, simple WHERE clauses such as =, !=, >, >=, <, <= are executed on the MySQL server.

The rest of the conditions and the LIMIT sampling constraint are executed in ClickHouse only after the query to MySQL finishes.

The MySQL engine does not support the Nullable data type, so when reading data from MySQL tables, NULL is converted to default values for the specified column type (usually 0 or an empty string).

Original article