【版本】
DM Database Server 64 V8
DB Version: 0x7000d
【操作系统】
Windows 11
【java版本】
java version "17.0.14"
【jdbc版本】
<groupId>com.dameng</groupId>
<artifactId>DmJdbcDriver18</artifactId>
<version>8.1.3.140</version>
【问题】
通过jdbc执行"DROP TABLE IF EXISTS 表名"报错:对象定义被修改
ERROR druid.sql.Statement - {conn-10009, pstmt-20628} execute error. DROP TABLE IF EXISTS TEST_TABLE
dm.jdbc.driver.DMException: 对象定义被修改。
DROP TABLE TEST_TABLE和DROP TABLE IF EXISTS TEST_TABLE都试过,都一样报错
检查下表上有没有触发器
可能得原因:并发访问、未释放资源
编写一个简单的测试类,先不使用连接池,看下是不是连接池或并发造成的问题:
Class.forName("dm.jdbc.driver.DmDriver");
Connection conn = DriverManager.getConnection("jdbc:dm://IP:PORT", "user", "pwd");
Statement stmt = conn.createStatement();
stmt.execute("DROP TABLE IF EXISTS TEST_TABLE");
stmt.close();
conn.close();