|面试官:这个MySql语法都没掌握,你简历怎么写精通数据库呢( 二 )


#查看目标表结构 show create table sms_send_type_test CREATE TABLE `sms_send_type_test` ( `sms_type_id` bigint(20) NOT NULL COMMENT '触发类型ID', `send_type_name` varchar(50) NOT NULL COMMENT '短信模板触发类型描述', `is_receiver` tinyint(4) NOT NULL COMMENT '是否允许添加手机号:1-允许;4-不允许', `is_deleted` tinyint(2) NOT NULL COMMENT '是否逻辑删除:0-未删除 , 1-已删除', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', PRIMARY KEY (`sms_type_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='短信模板触发类型表'再查看源表sms_send_type的结构
#查看源表结构 show create table sms_send_type CREATE TABLE `sms_send_type` ( `sms_type_id` bigint(20) NOT NULL COMMENT '触发类型ID', `send_type_name` varchar(50) NOT NULL COMMENT '短信模板触发类型描述', `is_receiver` tinyint(4) NOT NULL COMMENT '是否允许添加手机号:1-允许;4-不允许', `is_deleted` tinyint(2) NOT NULL COMMENT '是否逻辑删除:0-未删除 , 1-已删除', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', PRIMARY KEY (`sms_type_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='短信模板触发类型表' 可以发现两张表的结构是一致的 。
总结
create table as 与create table like 的区别
相同点:都是创建一个新表
不同点:create table as 只是复制原数据 , 其实就是把查询的结果建一个表create table like 产生与源表相同的表结构 , 包括索引和主键 , 数据需要用insert into 语句复制进去 。
由于笔者水平有限 , 文中纰漏之处在所难免 , 权当抛砖引玉 , 不妥之处 , 请大家批评指正 。


推荐阅读