MySQL中与MSSQL的IDENTITY列等效的是什么?

32

在MySQL中,什么是MSSQL IDENTITY列的等效物?我该如何在MySQL中创建这个表?

CREATE TABLE Lookups.Gender
(
    GenderID   INT         IDENTITY(1,1) NOT NULL,
    GenderName VARCHAR(32) NOT NULL
);

4
如果MySQL能够提供某种类型的文档,那就好了。 - JohnFx
6
@JohnFx,虽然个人而言,我更愿意去StackOverflow而不是那个网站,这是我通过谷歌搜索得出的结论。 - JumpingJezza
2个回答

54
CREATE TABLE Lookups.Gender
(
    GenderID   INT         NOT NULL AUTO_INCREMENT,
    GenderName VARCHAR(32) NOT NULL
);

2
感谢你的答案,希望能回报你 :) - Allan Chua
1
这对我不起作用(5.6.10; 这是Aurora,但语法应该完全相同):SQL错误(1075):不正确的表定义;只能有一个自动列,并且必须定义为键。 - mbourgon
1
@mbourgon https://dev59.com/Q2oy5IYBdhLWcg3wScPb只能有一个自动列。 - Joe Stefanelli

7
CREATE TABLE `Persons` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `LastName` varchar(255) NOT NULL,
  `FirstName` varchar(255) DEFAULT NULL,
  `Address` varchar(255) DEFAULT NULL,
  `City` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=100 DEFAULT CHARSET=latin1;

上述示例使用AUTO_INCREMENT语法。您可以指定特定于表的起始偏移量。

然而,增量必须在全局范围内设置。

SET @@auto_increment_increment=10;

您也可以按以下方式设置偏移量的全局默认值:

SET @@auto_increment_offset=5;

要查看当前值,请键入SHOW VARIABLES LIKE 'auto_inc%';


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接