MySQL复制表结构create table as与like的区别

  • 复制相同表结构

    -- 1.使用AS复制相同的表结构
    CREATE TABLE table_name AS SELECT * FROM other_table WHERE 1=2;
    CREATE TABLE table_name AS SELECT * FROM other_table LIMIT 0;
    -- 2.使用LIKE复制相同的表结构 
    CREATE TABLE table_name LIKE other_table;
    
  • 复制表的数据

    -- 复制全部数据
    INSERT INTO table_name SELECT * FROM other_name; 
    
    -- 复制指定的列 
    INSERT INTO test_index_tbl1 ( 
     test_index_tbl1.`id`,
     test_index_tbl1.`name`, 
     test_index_tbl1.`author`,
     test_index_tbl1.`info` 
    ) SELECT id, NAME, author, info 
    FROM 
    test_index_tbl;
    
  • AS与LIKE的区别:

    • AS:用来创建相同表结构并复制源表数据(可根据后面的条件来控制要不要复制源表数据)

    • LIKE:用来创建完整表结构和全部索引(可以使用INSERT INTO和SELECT语句复制源表的所有数据)

    • 使用SHOW CREATE TABLE 查看表的创建语句

    SHOW CREATE TABLE book ;
    
    CREATE TABLE `book` (  
     `id` int(11) NOT NULL AUTO_INCREMENT,   
     `name` varchar(50) NOT NULL,   
     `author` varchar(20) NOT NULL,   
     `info` varchar(255) DEFAULT NULL,   
     PRIMARY KEY (`id`),   
     KEY `author` (`author`) 
    ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8
    

    使用AS复制book表

    CREATE TABLE table_name as SELECT * FROM book;
    
    SHOW CREATE TABLE table_name ;
    
    CREATE TABLE `table_name` (   
     `id` int(11) NOT NULL DEFAULT '0',   
     `name` varchar(50) NOT NULL,   
     `author` varchar(20) NOT NULL,   
     `info` varchar(255) DEFAULT NULL 
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8
    

    AS复制了表的源数据和结构,但没有复制索引和主键的设置

    使用LIKE复制表

    CREATE TABLE table_name LIKE book;
    
    SHOW CREATE TABLE table_name ;
    
    CREATE TABLE `table_name` (   
     `id` int(11) NOT NULL AUTO_INCREMENT,
     `name` varchar(50) NOT NULL, 
     `author` varchar(20) NOT NULL,   
     `info` varchar(255) DEFAULT NULL,   
     PRIMARY KEY (`id`),   
     KEY `author` (`author`) 
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8
    

    完全的复制了源表的结构包括索引信息

    INSERT INTO table_name SELECT * FROM book;
    
  • AS:创建出来的table_name 缺少源表的索引信息,只有表结构相同,没有索引。
  • LIKE:创建出来的新表包含源表的完整结构和索引信息。
  • Oracle支持AS,即只有表结构没有索引,Oracle不支持LIKE
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

讓丄帝愛伱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值