起各位大哥指教一下我在mysql里建了两个表stock和stocktype,并且键了外健关联CONSTRAINT `stock_ibfk_1` FOREIGN KEY (`typeId`) REFERENCES `stocktype` (`id`) ON DELETE CASCADE ON UPDATE CASCADEmysql是不是有外健关联的表就不能够用下面的写法
conn.setAutoCommit(false);
Statement pstm = conn.createStatement();
pstm.addBatch("delete from stocktype where id = 3");
pstm.addBatch("delete from stocktype where id = 4");
pstm.executeBatch();
conn.commit();
conn.setAutoCommit(true);
报错
java.sql.SQLException: Not implemented
at org.gjt.mm.mysql.Statement.addBatch(Statement.java:849)
at cn.ben.ado.stock.stockTypeAdo.deleteType(stockTypeAdo.java:200)
at cn.ben.ado.stock.stockTypeAdo.main(stockTypeAdo.java:236)

解决方案 »

  1.   

    org.gjt.mm.mysql.Statement。
    驱动太老了。好像不支持批处理吧。
      

  2.   

    org.gjt.mm.mysql.Statement 在其他没有外健关联的表上我试过是可以支持批处理的,就是在那两个有外健关联上的表不能用!
    那两个表我是做了级联删除更新的“ON DELETE CASCADE ON UPDATE CASCADE”
    它就是不能用addBatch很奇怪!另外问多一个问题我的mysql是版本是4.0.18我使用语句:
    SELECT * FROM cx_msg WHERE id IN (SELECT id FROM jb_msg);
    报错是我的mysql版本问题吗???
    You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT id FROM jb_msg)' at line 1
      

  3.   

    mysql 4.0不支持嵌套的select查询, 4.1版开始支持了.