等价于MySQL中的SQL Server IDENTITY列?

MySQL中Microsoft SQL Server IDENTITY列的等效值为AUTO_INCREMENT。SQL Server中的IDENTITY就像MySQL中的AUTO_INCREMENT一样。

语法如下-

CREATE TABLE yourTableName

(

   yourColumnName1 dataType NOT NULL AUTO_INCREMENT,

   yourColumnName2 dataType,

   .

   .

   .

   N,

   PRIMARY KEY(yourColumnName1)

);

在MySQL中,如果您的列是auto_increment,则需要使用主键,否则MySQL将给出错误。看一下错误-

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

要消除上述错误,您需要将ProductId作为主键。MySQL AUTO_INCREMENT的声明如下,将ProductId设置为主键-

mysql> create table EquivalentOfIdentityInMySQL

   -> (

   -> ProductId int NOT NULL AUTO_INCREMENT,

   -> ProductName varchar(30)

   -> ,

   -> PRIMARY KEY(ProductId)

   -> );

如果您不会为ProductId列传递任何值,则MySQL从1开始auto_increment,默认情况下下一个数字以1递增。 

要检查ProductId列,让我们使用insert命令在表中插入一些记录。查询如下-

mysql> insert into EquivalentOfIdentityInMySQL(ProductName) values('Product-1');

mysql> insert into EquivalentOfIdentityInMySQL(ProductName) values('Product-2');

mysql> insert into EquivalentOfIdentityInMySQL(ProductName) values('Product-34');

使用select语句显示表中的所有记录。查询如下-

mysql> select *from EquivalentOfIdentityInMySQL;

以下是输出-

+-----------+-------------+

| ProductId | ProductName |

+-----------+-------------+

|         1 | Product-1   |

|         2 | Product-2   |

|         3 | Product-34  |

+-----------+-------------+

3 rows in set (0.00 sec)

看一下ProductId列,我们没有为该列传递任何值,但是我们得到的数字从1开始,下一个数字递增1。

以上是 等价于MySQL中的SQL Server IDENTITY列? 的全部内容, 来源链接: utcz.com/z/322084.html

回到顶部