MES_TABLES_PRIMARY_KEY_FIX_GUIDE.md 1.5 KB

mes_moentry 和 mes_morder 表主键冲突修复指南

问题描述

后端启动时报错:SqlSugar.SqlSugarException: Multiple primary key defined 涉及表:mes_moentrymes_morder

问题原因

这两个表在数据库中已存在,并且可能有以下情况之一:

  1. 表中已有主键约束,SqlSugar 尝试再次添加主键导致冲突
  2. 表中有多个主键约束(联合主键),与实体类定义不匹配

解决方案

步骤1:检查当前主键情况

执行以下SQL脚本:tools\sql\check_mes_tables_primary_keys.sql

mysql -h localhost -u root -p aidopdev < d:\DEMONET\tools\sql\check_mes_tables_primary_keys.sql

步骤2:修复主键

执行以下SQL脚本:tools\sql\fix_mes_tables_primary_keys.sql

mysql -h localhost -u root -p aidopdev < d:\DEMONET\tools\sql\fix_mes_tables_primary_keys.sql

步骤3:重启后端

修复完成后,重新运行后端:

cd d:\DEMONET\server\Admin.NET.Web.Entry
dotnet run

替代方案(如果表中无重要数据)

如果 mes_moentrymes_morder 表中没有重要数据,可以直接删除这两个表,让 SqlSugar 重新创建:

USE aidopdev;
DROP TABLE IF EXISTS mes_moentry;
DROP TABLE IF EXISTS mes_morder;

然后重启后端,SqlSugar 会自动创建这两个表。

注意事项

  • 在执行修复脚本前,请先备份数据库
  • 如果表中有重要数据,请谨慎操作
  • 修复完成后,确认主键只有一个字段:Id