试着格式化Ques.I具有下面提到的查询集合。现在我想要有一些功能可以确保所有查询都应该执行或者甚至不执行一个(如果某种错误发生)我只想维护我的数据库在适当的状态。执行所有查询或什么都不应该执行
con.setAutoCommit(false);
String qry = "insert into tblAllotment(Employee_ID,Employee_Name,Area,Building_Name,Flat_Type,Flat_No,Date_Application,Date_Allotment,Admin_Code) values(" + id + ",'" + name[1] + "','" + area + "','" + flat[2] + "','" + flat[1] + "','" + flat[0] + "','" + dte + "','" + date + "'," + uid + ")";
String qry1 = "insert into tblFlat_Report(Flat_No,Area_Code,Employee_ID,Date_Allottment,Admin_Code)values('" + flat[0] + "'," + acode + "," + id + ",'" + date + "'," + uid + ")";
//String qry2="UPDATE tblUser_Report t1 JOIN (SELECT MAX(S_Date) s_date FROM tblUser_Report WHERE Employee_ID = "+id+") t2 ON t1.s_date = t2.s_date SET t1.Status = 'A', t1.S_Date ='"+date+"' WHERE t1.Employee_ID ="+id+"";
String qry2 = "insert into tblUser_Report(Employee_ID,Employee_Name,S_Date,Area,Status) values(" + id + ",'" + name[1] + "','" + date + "','" + area + "','A')";
String qry3 = "update tblFlat set Status ='A' where Flat_No='" + flat[0] + "' AND Area_Code=" + acode + " ";
String qry4 = "update tblUser set WL_Flag='N' where Employee_ID=" + id + "";
st = con.createStatement();
int i = st.executeUpdate(qry);
int j = st.executeUpdate(qry1);
int k = st.executeUpdate(qry2);
int l = st.executeUpdate(qry3);
int m = st.executeUpdate(qry4);
con.commit();
if (i != 0 & j != 0 & k != 0 & l != 0 & m != 0) {
Done = "Data Inserted Successfully...!!!";
} else {
System.out.println("Error Occured");
}
} catch (SQLException e) {
con.rollback();
System.out.println(e.getMessage());
}
}
如何将我的整个数据库引擎转换为InnoDB? – Shaggy 2012-03-15 08:30:09
事实上,这是一个每表表过程的表,因为您可以在同一个MySQL数据库中的MyISAM和InnoDB中有表。你有几个选择,包括直接修改表的引擎(使用“alter table XXXX ENGINE = InnoDB”),但我强烈建议你阅读这篇文章http://dev.mysql.com/doc/refman/5.0/en/转换表到innodb.html(可能取决于你的MySQL版本),并检查你最好的选择做什么(例如,如果你的数据库服务器在生产中等) – huelbois 2012-03-15 08:46:58
MySQL 5.5的相同文档:http: //dev.mysql.com/doc/refman/5.5/en/converting-tables-to-innodb.html – huelbois 2012-03-15 08:47:53