| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- # 修改或删除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约束...");
-
- // 查看当前约束
- ResultSet constraints = conn.getMetaData().getTableConstraints(conn.getCatalog(), null, "WATERSHED_MODEL", "CHECK");
- while (constraints.next()) {
- String constraintName = constraints.getString("CONSTRAINT_NAME");
- System.out.println("当前CHECK约束: " + constraintName);
- }
-
- // 删除旧约束
- System.out.println("\n删除旧约束...");
- stmt.executeUpdate("ALTER TABLE WATERSHED_MODEL DROP CONSTRAINT watershed_model_check_1");
-
- // 直接删除约束,不再添加新约束,让应用程序控制状态值
- System.out.println("✅ CHECK约束已删除,不再限制状态值");
-
- // 测试插入任意状态值
- 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
|