我的知识记录

帝国cms 升级出现Multiple primary key defined错误

  1. 错误原因

    • MySQL 数据表只能有一个主键(PRIMARY KEY)。
    • 你的 SQL 语句中 add PRIMARY KEY(classid) 尝试新增一个主键,但该表可能已经存在主键,导致冲突。
  2. SQL语句解析

    sql
     
    alter table ***_ecms_infoclass_shop change classid classid int(10) unsigned NOT NULL default '0', DROP INDEX classid, add PRIMARY KEY(classid);
    • change classid ...:修改字段 classid 的定义。
    • DROP INDEX classid:删除名为 classid 的索引。
    • add PRIMARY KEY(classid):尝试将 classid 设置为主键。
  3. 可能的情况

    • 表中已存在主键,可能是其他字段或组合主键。
    • 主键冲突导致执行失败。

解决方案

方法一:检查现有主键并删除

  1. 查看现有主键
    执行以下 SQL 查看表结构,确认当前主键:

    SHOW CREATE TABLE ***_ecms_infoclass_shop;

    输出结果中会显示 PRIMARY KEY(...),确认主键字段。

  2. 删除现有主键
    如果表中已有主键,需先删除再新增:

    ALTER TABLE ***_ecms_infoclass_shop DROP PRIMARY KEY;
  3. 重新添加主键
    删除后,执行原 SQL 语句:

帝国cms 升级出现Multiple primary key defined错误

标签:

更新时间:2025-12-06 19:17:17

上一篇:宝塔面板操作方法有哪些?新手快速上手教程

下一篇:讯睿CMS_Xunruicms后台重置密码教程(忘记后台密码了怎么办)