繁体   English   中英

MySQL提交和回滚失败

[英]MySQL commit and rollback failed

我有个问题。

try {                   
    jdbcConnect( ); //get mysql connect
    conn.setAutoCommit( false );

    pstmt = conn.prepareStatement ( 
                    "INSERT INTO member ( member_name, member_introduce ) VALUES ( ?, ? )", Statement.RETURN_GENERATED_KEYS );

    pstmt.setString( 1, "something" );
    pstmt.setString( 2, "something" );
    pstmt.executeUpdate( );
    rs = pstmt.getGeneratedKeys( );
    rs.next( );
    String no = Integer.toString( rs.getInt( 1 );

    pstmt = conn.prepareStatement ( "UPDATE account SET account_name = ? WHERE account_no = ?" );
    pstmt.setString( 1, "something");
    pstmt.setString( 2, no );
    pstmt.executeUpdate( );

    conn.commit( );         
    conn.setAutoCommit( true );

} catch ( SQLException t ) {            
    try {
        if (conn != null) {
            conn.rollback();
            conn.setAutoCommit( true );
        }
    } catch ( SQLException e ) {
    }
}//close conn and prepareStatement 

我期待着工作承诺。

但是如果更新语句发生错误,则insert语句正在运行。

怎么了?

我认为您正在使用MyISAM表而不是InnoDB。 MyISAM完全不支持交易。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM