因此,我尝试使用phpmyadmin创建以下两个表。

create table category (
catId int identity(1,1),
catName varchar(20),

Constraint pk_category
PRIMARY KEY(catId))

create table subcategory (
subCatId INT IDENTITY(1,1),
catId INT,
subCatName VARCHAR(20),

CONSTRAINT pk_subcategory
PRIMARY KEY(catId,subCatId),

CONSTRAINT fk_subcat_cat
FOREIGN KEY(catID)
REFERENCES category(catId))


创建子类别时,它显示此查询错误:

1075-错误的表格定义;只能有一个自动列,必须将其定义为键。

子类别表中没有两个自动递增的列,只有'subCatId'是。应该做什么?

最佳答案

这就是MySQL所说的


  每个表只能有一个AUTO_INCREMENT列,它必须是
  索引,并且不能具有DEFAULT值。 AUTO_INCREMENT列
  仅当它只包含正值时,它才能正常工作。插入一个
  负数被视为插入了很大的正数。
  这样做是为了避免数字“换行”时出现精度问题。
  从正面到负面,并确保您不会意外
  得到一个包含0的AUTO_INCREMENT列。


因此,根据您的要求,您可以选择以下选项。


subCatId设置为Primary Key
或将列设为Unique

关于mysql - phpmyadmin显示错误,不能两列增加一倍,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53809785/

10-12 20:31