Phpmyadmin #1075 -错误的表定义;只能有一个auto列,并且必须将其定义为键

gijlo24d  于 2023-10-20  发布在  PHP
关注(0)|答案(4)|浏览(168)

嗨,我正在将mySql数据库(最初是Access数据库)导入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 said:文档
1075 -不正确的表定义;只能有一个auto列,并且必须将其定义为键
--实际上只有自动增量列,它被定义为主键,所以我不明白为什么它给我这个错误

uoifb46i

uoifb46i1#

有点晚,但我在最新版本的phpMyAdmin(4.4.2)中得到了相同的错误。Nimara使用手动SQL查询,我使用特殊的"添加新表"表单,仍然得到这个错误。
所以,对于那些像我一样来到这里,搜索#1075错误的人,你应该知道,如果你首先在表单中设置索引/主/自动增量列,然后添加一些新列,然后想要提交表单,就会发生这种情况。似乎当你添加更多的列时,phpMyAdmin会进行某种后台刷新,并丢失“主要”信息。您仍然可以在表单中看到它,但在后台它发送的SQL查询不再包含此信息。
因此,解决方案是重新设置主列并再次设置它。我很确定这是一个错误,但它解决了简单和快速的方式。

hrirmatl

hrirmatl2#

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

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;
pgccezyw

pgccezyw3#

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添加到此列定义。

yws3nbqq

yws3nbqq4#

此错误发生在最新版本中,因此,只需刷新页面(css +f5)并重新创建表。

相关问题