MySQL 中帶有自動增量主鍵的兩列?


使用 MyISAM 引擎實現這一點。下面帶自動增量的兩個列作為主鍵的示例。

建立一個擁有兩個列作為主鍵的表格 −

mysql> create table TwoPrimaryKeyTableDemo
   -> (
   -> Result ENUM('First','Second','Third','Fail') not null,
   -> StudentId int not null auto_increment,
   -> StudentName varchar(200) not null,
   -> Primary key(Result,StudentId)
   -> )
   -> ENGINE=MyISAM;
Query OK, 0 rows affected (0.20 sec)

向表格中插入記錄

mysql> insert into TwoPrimaryKeyTableDemo(StudentName,Result) values('John','Fail');
Query OK, 1 row affected (0.42 sec)
mysql> insert into TwoPrimaryKeyTableDemo(StudentName,Result)values('Carol','First');
Query OK, 1 row affected (0.09 sec)
mysql> insert into TwoPrimaryKeyTableDemo(StudentName,Result) values('Smith','Third');
Query OK, 1 row affected (0.05 sec)
mysql> insert into TwoPrimaryKeyTableDemo(StudentName,Result) values('Johnson','Second');
Query OK, 1 row affected (0.03 sec)
mysql> insert into TwoPrimaryKeyTableDemo(StudentName,Result) values('Johnson','Third');
Query OK, 1 row affected (0.06 sec)
mysql> insert into TwoPrimaryKeyTableDemo(StudentName,Result) values('Carol','Second');
Query OK, 1 row affected (0.18 sec)
mysql> insert into TwoPrimaryKeyTableDemo(StudentName,Result) values('Carol','Fail');
Query OK, 1 row affected (0.05 sec)

現在我們可以藉助帶有 order by 子句的選擇語句來檢查記錄。查詢如下。

mysql> select *from TwoPrimaryKeyTableDemo order by StudentId,Result;

以下是輸出 —

+--------+-----------+-------------+
| Result | StudentId | StudentName |
+--------+-----------+-------------+
| First  | 1         | Carol       |
| Second | 1         | Johnson     |
| Third  | 1         | Smith       |
| Fail   | 1         | John        |
| Second | 2         | Carol       |
| Third  | 2         | Johnson     |
| Fail   | 2         | Carol       |
+--------+-----------+-------------+
7 rows in set (0.00 sec)

更新於:30 日 7 月 2019

910 次檢視

開啟你的 職業生涯

透過完成此課程來獲得證書

開始學習
廣告