Spec-Zone .ru
спецификации, руководства, описания, API

16.4.1.5. Репликация CREATETABLE ... SELECT Операторы

Этот раздел обсуждает, как MySQL тиражируется CREATE TABLE ... SELECT операторы.

MySQL 5.6 не позволяет a CREATE TABLE ... SELECT оператор, чтобы произвести любые изменения в таблицах кроме таблицы, которая составляется оператором. Это - изменение в поведении от предыдущих версий MySQL, который разрешал этим операторам делать так. Это означает что, при использовании основанной на операторе репликации между MySQL 5.6 или более поздним ведомым устройством и ведущим устройством, выполняющим предыдущую версию MySQL, a CREATE TABLE ... SELECT порождение оператора изменяется в других таблицах на основных сбоях на ведомом устройстве, заставляя репликацию остановиться. Чтобы препятствовать этому происходить, следует использовать построчную репликацию, переписать незаконный оператор прежде, чем выполнить это на ведущем устройстве, или обновить ведущее устройство до MySQL 5.6 (или позже). (Если Вы хотите обновлять ведущее устройство, имейте в виду что такой CREATE TABLE ... SELECT оператор перестанет работать после обновления, если это не будет переписано, чтобы удалить любые побочные эффекты на других таблицах.) Это не проблема при использовании построчной репликации, потому что оператор регистрируется как a CREATE TABLE оператор с любыми изменениями, чтобы представить в виде таблицы данные, регистрируемые, как вставляют строка события, а не как все CREATE TABLE ... SELECT.

Эти поведения не зависят от версии MySQL:

Когда целевая таблица существует и IF NOT EXISTS дается, MySQL обрабатывает оператор зависимым от версии способом.

В MySQL 5.1 прежде 5.1.51 и в MySQL 5.5 прежде 5.5.6 (это - исходное поведение):

В MySQL 5.1 с 5.1.51:

В MySQL 5.5 с 5.5.6:

Эти зависимости от версии возникают из-за изменения в MySQL 5.5.6 в обработке CREATE TABLE ... SELECT не вставить строки, если целевая таблица уже существует, и изменение, произведенное в MySQL 5.1.51, чтобы сохранить прямую совместимость в репликации таких операторов от 5.1 ведущих устройств к 5.5 ведомым устройствам. Для получения дополнительной информации см. Раздел 13.1.17.1,"CREATE TABLE ... SELECT Синтаксис".