我有一个名为enrollments
的表,如下所示:
enrollmentindex - which is table primary key
username - varchar(64)
shortname - varchar(64)
role - varcar(64)
我必须离开enrollmentindex
col,但想要使用primary key
,username
和shortname
创建第二个role
(复合键)。
由于enrollmentindex
上存在密钥,我无法创建新的复合密钥。
尝试:
ALTER TABLE enrollments ADD PRIMARY KEY(username,shortname,role)
- 导致错误代码1068
。
ALTER TABLE enrollments DROP PRIMARY KEY, ADD PRIMARY KEY(username,shortname,role)
- 导致错误代码1075
表中没有数据。
答案 0 :(得分:2)
错误代码1068适用于多个主键(不允许)
错误代码1075用于不正确的表定义(必须将auto_increment字段定义为键)。看起来registermentindex是一个auto_increment字段,因此它需要包含在您的复合主键中。
我建议在username,shortname,role
上创建一个单独的UNIQUE索引,如果这是你要强制的东西