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