SQL错误 - 表定义不正确;只能有一个自动列

时间:2012-07-24 12:54:11

标签: mysql sql

这个SQL有什么问题,      - > );     错误1075(42000):表定义不正确;只能有一个自动列

SQL

CREATE TABLE TABLENAME12
(
TAB_ID INT NOT NULL AUTO_INCREMENT,

NAME_FIRST NVARCHAR(200),
TYPE NVARCHAR(200)

);

我正在使用mysql,我该如何解决这个问题。我正在尝试创建一个表。我收到此错误

3 个答案:

答案 0 :(得分:7)

您必须将AUTO_INCREMENT列指定为PRIMARY KEY尝试:

CREATE TABLE TABLENAME12
(
 TAB_ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
 NAME_FIRST NVARCHAR(200),
 TYPE NVARCHAR(200)
);

答案 1 :(得分:6)

正如错误所述。

"Incorrect table definition; there can be only one auto column and it must be 
defined as a key" 

http://sqlfiddle.com/#!2/7e064

在auto_increment列上添加主键。

CREATE TABLE TABLENAME12
(
TAB_ID INT NOT NULL AUTO_INCREMENT,
NAME_FIRST NVARCHAR(200),
TYPE NVARCHAR(200),
PRIMARY KEY (TAB_ID)
);

答案 2 :(得分:4)

你将获得的类似结果

CREATE TABLE TABLENAME12
(
  TAB_ID INT NOT NULL AUTO_INCREMENT,
  NAME_FIRST NVARCHAR(200),
  TYPE NVARCHAR(200),
  PRIMARY KEY( TAB_ID )
);

除了类型定义int和nvarchar之外,这也可以用作其他db的mysql。 如果使用varchar和integer,则与postgresql兼容。