MySQL 8.4 Release Notes
19.5.1.6 复制 of CREATE ... IF NOT EXISTS 语句
MySQL 在复制各种 CREATE ... IF NOT EXISTS 语句时,遵循以下规则:
-
每个
CREATE DATABASE IF NOT EXISTS语句都将被复制,无论该数据库在源服务器上是否已经存在。 -
类似地,每个
CREATE TABLE IF NOT EXISTS语句,无论该表在源服务器上是否已经存在,都将被复制。这包括CREATE TABLE IF NOT EXISTS ... LIKE。复制CREATE TABLE IF NOT EXISTS ... SELECT的规则不同;请参阅 第19.5.1.7节,“复制 CREATE TABLE ... SELECT 语句”,获取更多信息。 -
CREATE EVENT IF NOT EXISTS总是被复制,无论该事件在源服务器上是否已经存在。 -
CREATE USER只有在成功创建用户时才被写入二进制日志。如果语句包含IF NOT EXISTS,那么它将被认为是成功的,并且将被记录为写入的语句;这包括对已存在用户的引用,哪些用户没有被创建。请参阅 CREATE USER 二进制日志,获取更多信息。 -
CREATE PROCEDURE IF NOT EXISTS、CREATE FUNCTION IF NOT EXISTS、或CREATE TRIGGER IF NOT EXISTS,如果成功,将完整地写入二进制日志(包括IF NOT EXISTS子句),无论语句是否引发警告,因为对象(存储程序、函数或触发器)已经存在。