如果满足某些条件,如何有条件地停止SQLite脚本?

时间:2019-03-13 18:55:16

标签: sqlite

如果脚本开头满足条件,我希望能够使SQLite脚本跳过执行大部分脚本。例如,如果我检查表中具有特定值的记录,并且该记录返回零条记录,则我不想在脚本中执行其他任何操作。

我有一个SQLite脚本(文本文件中的SQL命令和“点”命令)可以通过执行以下命令来运行:

sqlite3 < myscript.sql

在我的数据库中,我有一个表,其中ID与0/1完成状态一起存储。在脚本开始附近,我有:

CREATE TEMP TABLE IF NOT EXISTS _IDs AS
SELECT id FROM tbl_toComplete WHERE completed = 0;

此后,脚本的其余部分将遍历并删除或更新存在所选ID的记录:

BEGIN;
DELETE FROM tbl_one WHERE id IN (SELECT * FROM _IDs);
UPDATE tbl_two SET id_status = 'Removed' WHERE id IN (SELECT * FROM _IDs);
...
COMMIT;

理想情况下,如果“ SELECT id from tbl_toComplete WHERE Completed = 0”不返回任何记录,则我不想处理删除或更新。

我知道拥有一个空的_IDs表将导致不更新任何表,但是如果不需要,我宁愿不进行交易。

谢谢!

0 个答案:

没有答案