MySQL 8.3 Release Notes
MySQL 在复制各种 CREATE ... IF NOT EXISTS
语句时应用以下规则:
-
每个
CREATE DATABASE IF NOT EXISTS
语句都会被复制,无论数据库是否已经存在于源上。 -
类似地,每个
CREATE TABLE IF NOT EXISTS
语句(不包括SELECT
)都会被复制,无论表是否已经存在于源上。这包括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
子句)写入二进制日志,无论语句是否因为对象(过程、函数或触发器)已经存在而引发警告。