CREATE ... IF
NOT EXISTSMySQL在复制各种语句
时应用这些规则:
每个
CREATE DATABASE IF NOT EXISTS语句都会被复制,无论数据库是否已经存在于源上。类似地,每个
CREATE TABLE IF NOT EXISTS没有 a 的语句 都会SELECT被复制,无论该表是否已存在于源中。这包括CREATE TABLE IF NOT EXISTS ... LIKE。的复制CREATE TABLE IF NOT EXISTS ... SELECT遵循一些不同的规则;有关详细信息,请参阅 第 17.5.1.7 节,“CREATE TABLE ... SELECT 语句的复制”。CREATE EVENT IF NOT EXISTS始终被复制,无论语句中命名的事件是否已存在于源中。CREATE USER仅在成功时写入二进制日志。如果该语句包含IF NOT EXISTS,则视为成功,并且只要至少创建了一个在该语句中指定的用户,就会被记录下来;在这种情况下,声明按书面记录;这包括对未创建的现有用户的引用。有关详细信息,请参阅 创建用户二进制日志记录。( MySQL 8.0.29 及更高版本:)
CREATE PROCEDURE IF NOT EXISTS,CREATE FUNCTION IF NOT EXISTS, orCREATE TRIGGER IF NOT EXISTS,如果成功,将全部写入二进制日志(包括IF NOT EXISTS子句),无论该语句是否因为对象(过程、函数或触发器)而引发警告已经存在。