MySQL错误1068多个主键定义

lnlaulya  于 12个月前  发布在  Mysql
关注(0)|答案(2)|浏览(150)

有一个已经存在的表,我想通过直接添加一个主键来修改表,但系统显示Error 1068 multiple primary key defined.多个主键在哪里?我试图删除表并重新创建+alter,它工作了。我只是想知道为什么我不能单独运行它们?
下面是我的代码:

CREATE TABLE MY_DB.EMPLOYEE_INFORMATION (
EMP_ID VARCHAR(75) NOT NULL ,
EMP_NAME VARCHAR(75) NOT NULL ,
EMP_NUMBER VARCHAR(75) NOT NULL ,
EMP_SEX VARCHAR(75) NOT NULL ,
EMP_BIRTH TIMESTAMP NOT NULL ,
EMP_TEL VARCHAR(75) NOT NULL ,
EMP_WECHAT VARCHAR(75) NOT NULL ,
EMP_EMAIL VARCHAR(75) NOT NULL ,
EMP_SCHOOL VARCHAR(75) NOT NULL ,
EMP_GRADE VARCHAR(75) NOT NULL ,
EMP_MAJOR VARCHAR(75) NOT NULL ,
UPDAT_DATE TIMESTAMP NOT NULL );

ALTER TABLE MY_DB.EMPLOYEE_INFORMATION 
ADD CONSTRAINT PK_EMPLOYEE_INFORMATION PRIMARY KEY (EMP_NUMBER)

字符串
错误代码:
错误代码:1068。定义了多个主键


的数据

pjngdqdw

pjngdqdw1#

您尝试添加主键两次。
不知何故,你已经在某个地方给EMPLOYEE_TIME_STATUS表添加了一个主键。我们不知道是怎么做到的。另外,你在上面给我们展示的CREATE TABLE语句是针对一个表EMPLOYEE_INFORMATION的,它对EMPLOYEE_TIME_STATUS表没有影响。

raogr8fs

raogr8fs2#

如果是8.0版本,MySQL支持为任何没有显式主键的InnoDB表生成不可见主键,当sql_generate_invisible_primary_keyserver系统变量设置为ON时,MySQL服务器会自动为任何这样的表添加一个生成的不可见主键(GIPK):
MySQL> SELECT @@sql_generate_invisible_primary_key;
并应查询:
mysql> SHOW COLUMNS FROM EMPLOYEE_TIME_STATUS;
以确定是否存在另一个PK。

相关问题