A 表是主表,运行时如果有问题就把 A 表出问题的记录 ID 保存到 log 表中,等到全都运行完了后,再从 log 表中取出出问题的 ID 重新执行。 就是这最后一步的 sql 语句不会写,从 log 表中取出 ID 号,然后再从 A 表中取出相应的 ID 执行。
1
F281M6Dh8DXpD1g2 2017 年 5 月 26 日
select id from A where id in ( select id from log )
|
2
geelaw 2017 年 5 月 26 日
或者你可以 join
|
3
U7Q5tLAex2FI0o0g 2017 年 5 月 26 日
为什么这么麻烦要 log 表。
A 表多一个字段记录运行状态,如果运行有问题,标记一下这个字段。 等到全都运行完了后,取 A 表中运行状态字段是你标记的值的记录就行了。 |
7
slixurd 2017 年 5 月 26 日
不要用 IN,不要用 IN,不要用 IN....
尤其是带子查询的 IN,DEPENDENT SUBQUERY 的性能非常有问题 4 楼的 JOIN 更好一点.... |
8
Ironsongming 2017 年 5 月 26 日
@littleylv bingo
|
9
Ironsongming 2017 年 5 月 26 日
@omg21 你这是数据类的系统么?如果不是,还不如直接在代码层面做错误日志收集呢。如果是,为什么不对全局做操作日志呢?
|
10
robinshi2010 2017 年 5 月 26 日
感觉 3 楼说的有道理啊。
|