# mes_moentry 和 mes_morder 表主键冲突修复指南 ## 问题描述 后端启动时报错:`SqlSugar.SqlSugarException: Multiple primary key defined` 涉及表:`mes_moentry` 和 `mes_morder` ## 问题原因 这两个表在数据库中已存在,并且可能有以下情况之一: 1. 表中已有主键约束,SqlSugar 尝试再次添加主键导致冲突 2. 表中有多个主键约束(联合主键),与实体类定义不匹配 ## 解决方案 ### 步骤1:检查当前主键情况 执行以下SQL脚本:`tools\sql\check_mes_tables_primary_keys.sql` ```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` ```sql mysql -h localhost -u root -p aidopdev < d:\DEMONET\tools\sql\fix_mes_tables_primary_keys.sql ``` ### 步骤3:重启后端 修复完成后,重新运行后端: ```powershell cd d:\DEMONET\server\Admin.NET.Web.Entry dotnet run ``` ## 替代方案(如果表中无重要数据) 如果 `mes_moentry` 和 `mes_morder` 表中没有重要数据,可以直接删除这两个表,让 SqlSugar 重新创建: ```sql USE aidopdev; DROP TABLE IF EXISTS mes_moentry; DROP TABLE IF EXISTS mes_morder; ``` 然后重启后端,SqlSugar 会自动创建这两个表。 ## 注意事项 - 在执行修复脚本前,请先备份数据库 - 如果表中有重要数据,请谨慎操作 - 修复完成后,确认主键只有一个字段:`Id`