CREATE
TABLE ... SELECT
MySQL在复制语句
时应用这些规则
:
如果目标表不存在,则记录如下。
IF NOT EXISTS
是否存在 并不重要。STATEMENT
或MIXED
格式:语句按书面记录。ROW
格式:该语句被记录为一个CREATE TABLE
语句,后跟一系列插入行事件。在 MySQL 8.0.21 之前,该语句被记录为两个事务。从 MySQL 8.0.21 开始,在支持原子 DDL 的存储引擎上,它被记录为一个事务。有关详细信息,请参阅 第 13.1.1 节,“原子数据定义语句支持”。
如果
CREATE TABLE ... SELECT
语句失败,则不会记录任何内容。这包括目标表存在IF NOT EXISTS
但未给出的情况。如果目标表存在并
IF NOT EXISTS
给出,MySQL 8.0 将完全忽略该语句;没有插入或记录任何内容。
MySQL 8.0 不允许一条
CREATE
TABLE ... SELECT
语句对该语句创建的表以外的表进行任何更改。