使用MySQL LIKE Operator创建具有旧表属性且没有重复项的新表?

要使用LIKE运算符实现此目的,以下是语法-

CREATE TABLE yourTableName2 LIKE yourTableName1;

为了理解语法,让我们创建一个表并将一些记录插入其中。以下是创建表的查询-

mysql> create table Employee
−> (
   −> EmployeeId int
   −> ,
   −> EmployeeName varchar(100)
−> );

借助insert命令将记录插入表中。查询如下-

mysql> insert into Employee values(1,'Carol');

mysql> insert into Employee values(2,'John');

mysql> insert into Employee values(3,'Johnson');

在select语句的帮助下显示所有记录。显示所有记录的查询如下-

mysql> select *from StudentTable;

以下是输出-

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

现在您可以实现我在开始时讨论的上述语法。查询如下,以在LIKE运算符的帮助下创建表。

mysql> create table StudentModifyTableDemo Like Employee;

您可以借助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;
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)