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
子句),无论语句是否引发警告,因为对象(存储程序、函数或触发器)已经存在。