使用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 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告