因此,我尝试使用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/