使用 MySQL LIKE 运算符创建一个具有旧表属性且没有重复项的新表?

mysqlmysqli database

要使用 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)

相关文章