MySQL 8.4 发行说明
MySQL 在复制各种 CREATE ... IF NOT EXISTS
语句时应用以下规则
每个
CREATE DATABASE IF NOT EXISTS
语句都会被复制,无论数据库是否已存在于源上。同样,每个不带
SELECT
的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
子句),无论该语句是否因为对象(过程、函数或触发器)已存在而发出警告。