问题描述
现在有一个任务,有一批的命令,都是update,insert,delete的批操作。还有一个要求,在执行操作时需要记录下更新数据的历史状态。例如:updatetab1setcol='**',col2='***'whereidin(selecttidfromtab2whereenable='Y
')我的处理是这样的:1.首先解析后得到:select*fromtab1whereidin(selecttidfromtab2whereenable='Y')
2.执行select将历史数据保存到另外的地方。3.执行update命令问题是,我要怎么解析出这个select语句呢?语句不算太复杂,都是单句语句。那么亲,能提供好办法吗?
解决方案
解决方案二:
不就是解析出where子句吗?但你举例中有insert,插入指令是没有where子句的,届时你打算如何处理?
解决方案三:
引用1楼xuzuning的回复:
不就是解析出where子句吗?但你举例中有insert,插入指令是没有where子句的,届时你打算如何处理?
insert的就不需要解析了,而且我想先把update、delete类型的sql解析出来再看Update的。而且从update中解析出where子句,也不是那么容易吧,还是要考虑语句的多样性的
时间: 2024-10-22 14:01:36