一、MySQL中表复制:create table like 与 create table as select
参考 MySQL的create table as 与 like区别
1、
CREATE
TABLE
A
LIKE
B
此种方式在将表B复制到A时候会将表B完整的字段结构和索引复制到表A中来。
2、
CREATE
TABLE
A
AS
SELECT
x,x,x,xx
FROM
B LIMIT 0
此种方式只会将表B的字段结构复制到表A中来,但不会复制表B中的索引到表A中来。这种方式比较灵活可以在复制原表表结构的同时指定要复制哪些字段,并且自身复制表也可以根据需要增加字段结构。
(MySQL5.6及以上的版本,开启了 enforce_gtid_consistency=true 功能导致的,MySQL官方解释说当启用 enforce_gtid_consistency 功能的时候,MySQL只允许能够保障事务安全,并且能够被日志记录的SQL语句被执行,像create table … select 和 create temporarytable语句,以及同时更新事务表和非事务表的SQL语句或事务都不允许执行。)
两种方式在复制表的时候均不会复制权限对表的设置。比如说原本对表B做了权限设置,复制后,表A不具备类似于表B的权限。