Spec-Zone.ru › MySQL 5.7

16.4.1.6 Репликация инструкций CREATE TABLE ... SELECT

В этом разделе рассматривается, как MySQL реплицирует инструкции CREATE TABLE ... SELECT.

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

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

  • CREATE TABLE ... SELECT всегда выполняет неявную фиксацию (Раздел 13.3.3, «Инструкции, вызывающие неявную фиксацию»).

  • Если целевая таблица не существует, регистрация происходит следующим образом. Не имеет значения, присутствует ли IF NOT EXISTS.

    • В формате STATEMENT или MIXED: Инструкция регистрируется как записанная.

    • В формате ROW: Инструкция регистрируется как инструкция CREATE TABLE, за которой следует ряд событий вставки строк.

  • Если инструкция завершается ошибкой, ничего не регистрируется. Это включает случай, когда целевая таблица существует, а IF NOT EXISTS не указано.

Когда целевая таблица существует и IF NOT EXISTS указано, MySQL 5.7 полностью игнорирует инструкцию; ничего не вставляется и не регистрируется.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/replication-features-create-select.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API