Computer >> Máy Tính >  >> Lập trình >> MySQL

Hai cột làm khóa chính với tự động tăng trong MySQL?

Đạt được điều này bằng MyISAM Engine. Đây là một ví dụ về hai cột làm khóa chính với tự động tăng.

Tạo bảng có hai cột làm khóa chính -

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)

Chèn bản ghi vào bảng

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)

Bây giờ chúng ta có thể kiểm tra các bản ghi với sự trợ giúp của câu lệnh select với thứ tự theo mệnh đề. Truy vấn như sau.

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

Sau đây là kết quả -

+--------+-----------+-------------+
| 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)