同一行:
DELETE(SELECT * FROM tablename WHERE id=12)在上,正常运行,使用occi需要花费很长时间。
我已经检查了查询"SELECT * FROM tablename WHERE id=12“是否匹配一组非空行。
更具体地说,我使用了以下语法:
oracle::occi::Statement *deleteStm = con->createStatement("DELETE(SELECT * FROM tablename WHERE id=12)");
oracle::occi::ResultSet *rs = deleteStm->executeQuery();发布于 2017-09-14 15:16:18
我怀疑在您的情况下,您只是得到了未提交的事务。它是这样的:
session1 session2
DELETE ... table/rows is locked
SELECT * FROM ... you will see all data
DELETE ... and now you will wait and wait
until lock is released
COMMIT;
SELECT * FROM ... now resultset is empty我强烈建议阅读数据并发性和一致性
https://stackoverflow.com/questions/46199617
复制相似问题