MySQL 8.4 版本注意事項
當複製各種 CREATE ... IF NOT EXISTS
陳述式時,MySQL 會套用這些規則
每個
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
子句),無論陳述式是否因為物件 (程序、函式或觸發程序) 已存在而引發警告。