Home > Database > Mysql Tutorial > What is the difference between create as and create like in Mysql? (Comparative introduction)

What is the difference between create as and create like in Mysql? (Comparative introduction)

不言
Release: 2019-02-14 11:52:37
forward
4334 people have browsed it

The content of this article is about the difference between create as and create like in Mysql? (Comparative introduction) has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.

You may find it very convenient when using Navicat Premium, such as copying tables or data structures. In fact, this method of copying table data or structures is created table as and create table like.

Careful friends will ask, what is the difference between them? . . . Without further ado, let’s get straight to the point:,

(Recommended course: MySQL Tutorial)

For example, here is table data t1:

DROP TABLE IF EXISTS `t1`;
CREATE TABLE `t1`  (
  `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID,自增',
  `uid` bigint(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '用户uid',
  `nickname` varchar(25) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '昵称',
  `name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '用户名',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `unn`(`uid`, `name`, `nickname`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci  ROW_FORMAT = Compact;

-- ----------------------------
-- Records of t1
-- ----------------------------
INSERT INTO `t1` VALUES (3, 100, 'kaven', 'test3');
INSERT INTO `t1` VALUES (2, 101, 'maha', 'test2');
INSERT INTO `t1` VALUES (4, 102, 'loose', 'test4');
INSERT INTO `t1` VALUES (5, 105, 'balala', 'test5');
Copy after login

Attention There is an index on it:

Create As Copy Table

create table t1_copy as select * from t1 where 1=2# 或者 create table t1_copy as select * from t1 limit 0
Copy after login

Here we only need the table structure, so where above 1=2 or lmit 0 queries empty data. We will find that the new table t1_copy has no index:

The index information of the t1 table (source table) is missing but only the table structure is the same. (If you want to copy data, just remove limit 0, that is, copy all the queried data)

Create like Copy table

create table t1_copy2 like t1
Copy after login

We found that the new table created by like contains the complete table structure and index information of the source table.

Summary:

as is used to create the same table structure and copy the source table data.

like is used to create a complete table structure and all indexes.

Note: The two methods will not copy the permission settings on the table when copying the table. For example, if permissions were originally set for table A, after copying table AA, table AA does not have permissions similar to table A. Friends who are interested can try it

The above is the detailed content of What is the difference between create as and create like in Mysql? (Comparative introduction). For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:cnblogs.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template