# 直接删除CHECK约束,解决违反约束的问题 $classpath = "d:\VUEobject\ModelPlatform\ruoyi-admin\lib\DmJdbcDriver18-8.1.2.192.jar" # 创建修复脚本 $javaCode = @' import java.sql.*; public class FixCheckConstraint { public static void main(String[] args) { try { Class.forName("dm.jdbc.driver.DmDriver"); Connection conn = DriverManager.getConnection("jdbc:dm://192.168.0.145:30236", "WATERSHED", "WaterShed./1224"); Statement stmt = conn.createStatement(); // 直接删除约束,不检查是否存在 System.out.println("删除CHECK约束..."); try { stmt.executeUpdate("ALTER TABLE WATERSHED_MODEL DROP CONSTRAINT watershed_model_check_1"); System.out.println("✅ CHECK约束已删除,不再限制状态值"); } catch (Exception e) { System.out.println("❌ 约束不存在或删除失败,跳过此步骤"); e.printStackTrace(); } // 测试插入任意状态值 System.out.println("\n测试插入任意状态值..."); PreparedStatement pstmt = conn.prepareStatement("INSERT INTO WATERSHED_MODEL (MODEL_NAME, MODEL_TYPE, MODEL_FORMAT, STATUS) VALUES (?, ?, ?, ?)"); pstmt.setString(1, "测试模型"); pstmt.setString(2, "测试类型"); pstmt.setString(3, "test"); pstmt.setString(4, "正常"); // 中文状态值 int rows = pstmt.executeUpdate(); System.out.println("✅ 插入状态值'正常'成功,影响行数: " + rows); // 测试插入另一个状态值 pstmt.setString(4, "维护中"); // 中文状态值 rows = pstmt.executeUpdate(); System.out.println("✅ 插入状态值'维护中'成功,影响行数: " + rows); // 测试插入英文状态值 pstmt.setString(4, "NORMAL"); // 英文状态值 rows = pstmt.executeUpdate(); System.out.println("✅ 插入英文状态值'NORMAL'成功,影响行数: " + rows); System.out.println("\n✅ 修复完成!CHECK约束已删除,不再限制状态值"); stmt.close(); pstmt.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } } } '@ # 保存Java代码到文件 $javaCode | Out-File -FilePath "d:\VUEobject\ModelPlatform\FixCheckConstraint.java" -Encoding ascii # 编译Java代码 javac -cp $classpath "d:\VUEobject\ModelPlatform\FixCheckConstraint.java" # 运行Java程序 java -cp "$classpath;d:\VUEobject\ModelPlatform" FixCheckConstraint