fix_check_constraint_simple.ps1 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. # 直接删除CHECK约束,解决违反约束的问题
  2. $classpath = "d:\VUEobject\ModelPlatform\ruoyi-admin\lib\DmJdbcDriver18-8.1.2.192.jar"
  3. # 创建修复脚本
  4. $javaCode = @'
  5. import java.sql.*;
  6. public class FixCheckConstraint {
  7. public static void main(String[] args) {
  8. try {
  9. Class.forName("dm.jdbc.driver.DmDriver");
  10. Connection conn = DriverManager.getConnection("jdbc:dm://192.168.0.145:30236", "WATERSHED", "WaterShed./1224");
  11. Statement stmt = conn.createStatement();
  12. // 直接删除约束,不检查是否存在
  13. System.out.println("删除CHECK约束...");
  14. try {
  15. stmt.executeUpdate("ALTER TABLE WATERSHED_MODEL DROP CONSTRAINT watershed_model_check_1");
  16. System.out.println("✅ CHECK约束已删除,不再限制状态值");
  17. } catch (Exception e) {
  18. System.out.println("❌ 约束不存在或删除失败,跳过此步骤");
  19. e.printStackTrace();
  20. }
  21. // 测试插入任意状态值
  22. System.out.println("\n测试插入任意状态值...");
  23. PreparedStatement pstmt = conn.prepareStatement("INSERT INTO WATERSHED_MODEL (MODEL_NAME, MODEL_TYPE, MODEL_FORMAT, STATUS) VALUES (?, ?, ?, ?)");
  24. pstmt.setString(1, "测试模型");
  25. pstmt.setString(2, "测试类型");
  26. pstmt.setString(3, "test");
  27. pstmt.setString(4, "正常"); // 中文状态值
  28. int rows = pstmt.executeUpdate();
  29. System.out.println("✅ 插入状态值'正常'成功,影响行数: " + rows);
  30. // 测试插入另一个状态值
  31. pstmt.setString(4, "维护中"); // 中文状态值
  32. rows = pstmt.executeUpdate();
  33. System.out.println("✅ 插入状态值'维护中'成功,影响行数: " + rows);
  34. // 测试插入英文状态值
  35. pstmt.setString(4, "NORMAL"); // 英文状态值
  36. rows = pstmt.executeUpdate();
  37. System.out.println("✅ 插入英文状态值'NORMAL'成功,影响行数: " + rows);
  38. System.out.println("\n✅ 修复完成!CHECK约束已删除,不再限制状态值");
  39. stmt.close();
  40. pstmt.close();
  41. conn.close();
  42. } catch (Exception e) {
  43. e.printStackTrace();
  44. }
  45. }
  46. }
  47. '@
  48. # 保存Java代码到文件
  49. $javaCode | Out-File -FilePath "d:\VUEobject\ModelPlatform\FixCheckConstraint.java" -Encoding ascii
  50. # 编译Java代码
  51. javac -cp $classpath "d:\VUEobject\ModelPlatform\FixCheckConstraint.java"
  52. # 运行Java程序
  53. java -cp "$classpath;d:\VUEobject\ModelPlatform" FixCheckConstraint