8

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

SQL

CREATE TABLE TABLENAME12
(
TAB_ID INT NOT NULL AUTO_INCREMENT,

NAME_FIRST NVARCHAR(200),
TYPE NVARCHAR(200)

);

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

4

3 回答 3

9

您必须将AUTO_INCREMENT列指定为PRIMARY KEYtry:

CREATE TABLE TABLENAME12
(
 TAB_ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
 NAME_FIRST NVARCHAR(200),
 TYPE NVARCHAR(200)
);
于 2012-07-24T12:55:03.413 回答
7

正如错误所说。

"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)
);
于 2012-07-24T12:59:14.537 回答
6

您将获得的类似结果

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 兼容。

于 2012-07-24T13:04:44.537 回答