我正在对oracle数据库服务器执行以下UPDATE sql查询-。
UPDATE TEST.SS_USER_CREDENTIALS SET CREDENTIAL = 'UUHs4w4Nk45gHrSIHA==';
在Oracle SQL developer中执行这个查询后,我可以看到查询执行状态的spinner一直在旋转,因此没有返回任何输出。然而,在同一张表上的以下SELECT查询立即返回结果--。
SELECT * FROM TEST.SS_USER_CREDENTIALS;
请你帮助理解为什么UPDATE查询不能执行?
如果你没有启用自动提交,你可能需要运行COMMIT。
否则oracle的更新将不会应用到你的数据集上
试试用where子句
UPDATE TEST.SS_USER_CREDENTIALS SET CREDENTIAL = 'UUHs4w4Nk45gHrSIHA==' where id='someid';
我看到你的命令,如果表有一万亿行,这将需要时间(因为我猜测这不应该是外键)。
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
如果你正在寻找一个临时的解决方案,你也可以把ON UPDATE动作改为CASCADE,如果你有一个外键的问题,你可以修改你的id。
它可能是你有另一个打开的未提交的事务的相同的记录集,所以他们是锁定的事务。
如果你锁定了它们,在另一个事务中运行相同的UPDATE。
只是Commitrollback你的事务