Phpmyadmin#1075 - 表定义不正确;只能有一个自动列,必须将其定义为键

时间:2013-12-01 09:17:17

标签: php mysql sql phpmyadmin

嗨, 我正在将mySql数据库(最初是一个访问数据库)导入phpmyadmin,它给我这个错误:

SQL查询:

CREATE TABLE  `Acc_inst` (

 `inst_ID` INTEGER NOT NULL AUTO_INCREMENT ,
 `inst_Name` VARCHAR( 255 ) ,
 `Inst_Ws` VARCHAR( 255 ) ,
 `inst_ph` VARCHAR( 255 ) ,
 `inst_Fx` VARCHAR( 255 ) ,
 `Inst_E` VARCHAR( 255 )
) ENGINE = INNODB DEFAULT CHARSET = utf8;

MySQL说:文档

  

1075 - 表定义不正确;只能有一个自动列,必须将其定义为键

- 实际上只有自动增量列,它被定义为主键,所以我不明白为什么它给我这个错误

3 个答案:

答案 0 :(得分:10)

有点晚了,但我在最新版本的phpMyAdmin(4.4.2)中遇到了同样的错误。 Nimara使用了手动SQL查询,我使用了特殊的"添加新表"形式仍然有这个错误。

所以,对于那些像我一样来到这里的人,搜索#1075错误,你应该知道,如果你首先在表单中设置索引/主要/自动增量列,然后添加一些新列,就会发生这种情况然后想提交表格。似乎当你添加更多列时,phpMyAdmin会进行某种背景刷新并失去" primary"信息。您仍然可以在表单中看到它,但在后台,它发送的SQL查询不再具有此信息。

因此解决方案是取消选择主列并重新设置。 我很确定这是一个错误,但它通过这种方式解决了简单快捷的问题。

答案 1 :(得分:6)

将自动增量列定义为主键。

CREATE TABLE  `Acc_inst` 
(    
   `inst_ID` INTEGER NOT NULL AUTO_INCREMENT ,
   `inst_Name` VARCHAR( 255 ) ,
   `Inst_Ws` VARCHAR( 255 ) ,
   `inst_ph` VARCHAR( 255 ) ,
   `inst_Fx` VARCHAR( 255 ) ,
   `Inst_E` VARCHAR( 255 ) ,
   PRIMARY KEY `inst_ID`(`inst_ID`)
) ENGINE = INNODB DEFAULT CHARSET = utf8;

答案 2 :(得分:4)

CREATE TABLE  `Acc_inst` 
(    
   `inst_ID` INTEGER NOT NULL primary key AUTO_INCREMENT ,
   `inst_Name` VARCHAR( 255 ) ,
   `Inst_Ws` VARCHAR( 255 ) ,
   `inst_ph` VARCHAR( 255 ) ,
   `inst_Fx` VARCHAR( 255 ) ,
   `Inst_E` VARCHAR( 255 )
) ENGINE = INNODB DEFAULT CHARSET = utf8;

错误说您必须将自动增量列定义为键:将primary key添加到此列定义中。