【发布时间】:2019-09-16 16:41:14
【问题描述】:
我有一张有 50k 条记录的表。如何在更新时捕获失败的记录(主键)并继续其余的?
Create table temp(
id NUMBER,
word VARCHAR2(1000),
Sentence VARCHAR2(2000),
valid NUMBER
);
insert into temp
SELECT 1,'automation testing', 'automtestingation testing is popular kind of testing',0 FROM DUAL UNION ALL
SELECT 2,'testing','manual testing',0 FROM DUAL UNION ALL
SELECT 3,'manual testing','this is an old method of testing',0 FROM DUAL UNION ALL
SELECT 4,'punctuation','automation testing,manual testing,punctuation,automanual testing-testing',0 FROM DUAL UNION ALL
SELECT 5,'B-number analysis','B-number analysis table' FROM DUAL UNION ALL
SELECT 6,'B-number analysis table','testing B-number analysis',0 FROM DUAL;
update temp set valid = 1;
我希望捕获所有失败的记录,即更新到valid =1 时失败的记录。我想捕获所有未能更新的记录的主键,并且应该继续更新。
【问题讨论】:
-
capture,你的意思是选择?您正在显示一个 UPDATE 查询,因此不清楚。
-
还有你所说的失败记录是什么意思?这意味着具有
valid = 0? 的记录 -
更新到有效 =1 时记录失败。我想捕获所有未能更新的记录的主键,并且应该继续更新。
标签: sql oracle error-handling sql-update