MariaDB - Table Cloning

某些情况需要生成现有表的精确副本. CREATE ... SELECT语句无法生成此输出,因为它忽略了索引和默认值之类的内容.

复制表的过程如下 :

  • 利用SHOW CREATE TABLE生成一个CREATE TABLE语句,详细说明源表的整个结构.

  • 编辑语句以为表提供新名称并执行它.

  • 使用INSERT INTO ... SELECT语句如果你还需要复制表数据.

mysql> INSERT INTO inventory_copy_tbl (
   product_id,product_name,product_manufacturer,ship_date)
   
   SELECT product_id,product_name,product_manufacturer,ship_date,
   FROM inventory_tbl;

创建副本的另一种方法是使用CREATE TABLE AS语句.该语句复制所有列,列定义,并使用源表的数据填充副本.

查看下面给出的语法 :

CREATE TABLE clone_tbl AS
   SELECT columns
   FROM original_tbl
   WHERE conditions];

查看下面和下面使用它的示例;

CREATE TABLE products_copy_tbl AS
   SELECT *
   FROM products_tbl;