Tương đương với cột IDENTITY của Microsoft SQL Server trong MySQL là AUTO_INCREMENT. IDENTITY trong SQL Server hoạt động giống như AUTO_INCREMENT trong MySQL.
Cú pháp như sau -
CREATE TABLE yourTableName ( yourColumnName1 dataType NOT NULL AUTO_INCREMENT, yourColumnName2 dataType, . . . N, PRIMARY KEY(yourColumnName1) );
Trong MySQL, bạn cần sử dụng khóa chính nếu cột của bạn là auto_increment, nếu không MySQL sẽ báo lỗi. Xem lỗi -
mysql> create table EquivalentOfIdentityInMySQL -> ( -> ProductId int NOT NULL AUTO_INCREMENT, -> ProductName varchar(30) -> ); ERROR 1075 (42000) − Incorrect table definition; there can be only one auto column and it must be defined as a key
Để loại bỏ lỗi trên, bạn cần đặt ProductId làm khóa chính. Khai báo MySQL AUTO_INCREMENT như sau với ProductId được đặt làm khóa chính -
mysql> create table EquivalentOfIdentityInMySQL -> ( -> ProductId int NOT NULL AUTO_INCREMENT, -> ProductName varchar(30) -> , -> PRIMARY KEY(ProductId) -> ); Query OK, 0 rows affected (0.59 sec)
Nếu bạn không chuyển bất kỳ giá trị nào cho cột ProductId, MySQL sẽ bắt đầu auto_increment từ 1 và các số tiếp theo tăng lên 1 theo mặc định.
Để kiểm tra cột ProductId, chúng ta hãy chèn một số bản ghi vào bảng bằng lệnh chèn. Truy vấn như sau -
mysql> insert into EquivalentOfIdentityInMySQL(ProductName) values('Product-1'); Query OK, 1 row affected (0.14 sec) mysql> insert into EquivalentOfIdentityInMySQL(ProductName) values('Product-2'); Query OK, 1 row affected (0.14 sec) mysql> insert into EquivalentOfIdentityInMySQL(ProductName) values('Product-34'); Query OK, 1 row affected (0.10 sec)
Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select. Truy vấn như sau -
mysql> select *from EquivalentOfIdentityInMySQL;
Sau đây là kết quả -
+-----------+-------------+ | ProductId | ProductName | +-----------+-------------+ | 1 | Product-1 | | 2 | Product-2 | | 3 | Product-34 | +-----------+-------------+ 3 rows in set (0.00 sec)
Nhìn vào cột ProductId, chúng tôi đã không chuyển bất kỳ giá trị nào cho cột này nhưng chúng tôi đang nhận được số bắt đầu từ 1 và số tiếp theo tăng dần lên 1.