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