MySQL 9.0 版本注意事項
當複製 CREATE TABLE ... SELECT
陳述式時,MySQL 會套用這些規則
CREATE TABLE ... SELECT
永遠會執行隱含的 commit (第 15.3.3 節「導致隱含 commit 的陳述式」)。如果目標資料表不存在,則記錄會如下所示。無論是否有
IF NOT EXISTS
都沒有關係。STATEMENT
或MIXED
格式:陳述式會以撰寫的方式記錄。ROW
格式:陳述式會記錄為CREATE TABLE
陳述式,後面接著一系列的 insert-row 事件。對於支援原子 DDL 的儲存引擎,陳述式會記錄為一個交易。如需詳細資訊,請參閱第 15.1.1 節「原子資料定義陳述式支援」。
如果
CREATE TABLE ... SELECT
陳述式失敗,則不會記錄任何內容。這包括目標資料表存在且未指定IF NOT EXISTS
的情況。如果目標資料表存在且已指定
IF NOT EXISTS
,MySQL 9.0 會完全忽略陳述式;不會插入或記錄任何內容。
MySQL 9.0 不允許 CREATE TABLE ... SELECT
語句對除了該語句建立的表格以外的任何表格進行變更。