如果脚本开头满足条件,我希望能够使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表将导致不更新任何表,但是如果不需要,我宁愿不进行交易。
谢谢!