使用MySQL LIKE运算符创建新表,该表具有旧表的属性且不包含重复项?


要使用 LIKE 运算符实现此目的,语法如下:

CREATE TABLE yourTableName2 LIKE yourTableName1;

为了理解语法,让我们创建一个表并向其中插入一些记录。以下是在创建表时使用的查询:

mysql> create table Employee
−> (
   −> EmployeeId int
   −> ,
   −> EmployeeName varchar(100)
−> );
Query OK, 0 rows affected (0.54 sec)

使用 INSERT 命令将记录插入表中。查询如下:

mysql> insert into Employee values(1,'Carol');
Query OK, 1 row affected (0.18 sec)

mysql> insert into Employee values(2,'John');
Query OK, 1 row affected (0.16 sec)

mysql> insert into Employee values(3,'Johnson');
Query OK, 1 row affected (0.11 sec)

使用 SELECT 语句显示所有记录。显示所有记录的查询如下:

mysql> select *from StudentTable;

以下是输出结果:

+------+---------+
| Id   |    Name |
+------+---------+
| 3    | Johnson |
+------+---------+
1 row in set (0.00 sec)

现在您可以实现我在开头讨论的上述语法。以下是在使用 LIKE 运算符创建表时使用的查询。

mysql> create table StudentModifyTableDemo Like Employee;
Query OK, 0 rows affected (0.50 sec)

您可以使用 DESC 命令检查新表的定义。查询如下:

mysql> desc StudentModifyTableDemo;

以下是输出结果:

+--------------+--------------+------+-----+---------+-------+
| Field        | Type         | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+-------+
| EmployeeId   | int(11)      | YES  |     | NULL    |       |
| EmployeeName | varchar(100) | YES  |     | NULL    |       |
+--------------+--------------+------+-----+---------+-------+
2 rows in set (0.12 sec)

现在您可以将 Employee 表的所有记录插入到 StudentModifyTableDemo 表中。

查询如下:

mysql> insert into StudentModifyTableDemo select *from Employee;
Query OK, 3 rows affected (0.16 sec)
Records: 3 Duplicates: 0 Warnings: 0

现在您可以检查所有记录是否都存在于第二个表中。查询如下:

mysql> select *from StudentModifyTableDemo;

以下是输出结果:

+------------+--------------+
| EmployeeId | EmployeeName |
+------------+--------------+
|          1 |        Carol |
|          2 |         John |
|          3 |      Johnson |
+------------+--------------+
3 rows in set (0.00 sec)

更新时间: 2020年6月29日

50 次浏览

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告