MySQL 的create table as 与like 的使用
程序员文章站
2022-06-03 08:02:54
...
-- 1.使用AS复制相同的表结构
CREATE TABLE table_name AS SELECT * FROM other_table WHERE 1=2;(或者LIMIT 0)
-- 2.使用LIKE复制相同的表结构
CREATE TABLE table_name LIKE other_table;
2.复制表的数据
复制全部数据 注意:复制全部数据 列的类型要相同
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;
3.AS与LIKE的用途
AS:用来创建相同表结构并复制源表数据(可根据后面的条件来控制要不要复制源表数据)
①.使用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
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复制源表,结论:
对比两次查询的创建语句发现,AS复制了表的源数据和结构,但没有复制索引和主键的设置。
再测试LIKE复制表
CREATE TABLE table_name LIKE 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
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
AS:用来创建相同表结构并复制源表数据(可根据后面的条件来控制要不要复制源表数据)
LIKE:用来创建完整表结构和全部索引。(可以使用INSERT INTO和SELECT语句复制源表的所有数据 )
INSERT INTO table_name SELECT * FROM book;
4.AS与LIKE的区别:
上一篇: 微信小程序商城项目之侧栏分类效果(1)
下一篇: 微信小程序商城项目之购物数量加减(3)
推荐阅读
-
MySQL存储引擎InnoDB的配置与使用的讲解
-
Mysql Explain命令的使用与分析
-
MySQL中UNION与UNION ALL的基本使用方法
-
mysql 定时任务的实现与使用方法示例
-
MySQL中预处理语句prepare、execute与deallocate的使用教程
-
解析mysql left( right ) join使用on与where筛选的差异
-
create table 使用select查询语句创建表的方法分享
-
MySQL5.7使用pt-table-checksum检查主从数据一致性的测试讲解
-
MySQL中create table语句的基本语法是
-
MySQL慢查询日志的配置与使用教程