[英]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.