Java MYSQL选择。。。更新不起作用?
我对MySQL的SELECT有问题。。对于更新,以下是我尝试运行的查询:Java MYSQL选择。。。更新不起作用?,java,sql,mysql,select,jdbc,Java,Sql,Mysql,Select,Jdbc,我对MySQL的SELECT有问题。。对于更新,以下是我尝试运行的查询: SQL = "SELECT * " + "FROM " + TableName + " " + "WHERE out_status IN ("+outSStatus+") AND queued <= NOW() " + "ORDER BY out_status, id_queue ASC "+ limitSql+ "FOR UPDATE"; SQL=“选择*+ “来
SQL = "SELECT * " +
"FROM " + TableName + " " +
"WHERE out_status IN ("+outSStatus+") AND queued <= NOW() " +
"ORDER BY out_status, id_queue ASC "+ limitSql+
"FOR UPDATE";
SQL=“选择*+
“来自”+TableName+“”+
如果out_status IN(“+outstatus+”)和queued您可以使用它,它可能正在工作,您无法注意到。假设线程1执行该语句,并自动提交事务,因为自动提交
处于启用状态。那么线程2当然也可以运行该语句
尝试使用连接类将自动提交设置为关闭,然后查看结果。我也有类似的问题。来自@Vikash和@Adeel Ansari的两个答案都是有效的建议。但是,我通过使用InnoDB
引擎而不是MyISAM
MyISAM
只允许锁定ta解决了这个问题ble级别,而不是行级别。您仍然需要事务,当使用InnoDB时,我将auto commit设置为off…并且在上述情况下,我仍然需要使用事务使其工作?例如:开始和结束COMMIT@James:好吧,但至少它开始起作用了。我建议你可以接受维卡什的答案。