CREATE ... IF
NOT EXISTS
MySQL在复制各种语句
时应用这些规则:
每个
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
子句),无论该语句是否因为对象(过程、函数或触发器)而引发警告已经存在。