create trigger t123 after update on t1
begin
.shell echo "hi";
end;
它显示.
附近的语法错误如何纠正它?我的目的是通过在sqlite中使用触发器执行脚本。
文档显示触发器主体中仅允许更新/插入/删除/选择语句。(并且.shell
无论如何都不是SQL语句;仅由sqlite3
命令行shell实现。)
执行脚本的唯一方法是创建一个用户定义的函数,然后通过在虚拟查询中使用它来执行它:
CREATE TRIGGER ...
BEGIN
SELECT run_script('echo "hi"');
END;
(如果数据库使用的某些其他未安装此功能的程序使用数据库,则此触发器将失败。)