triggers - SQLite创建触发器: What is the default if neither BEFORE nor AFTER has been specified?

标签 triggers sqlite

来自SQLite引用CREATE TRIGGER的文档,可以看到BEFOREAFTERINSTEAD OF可能被省略。

那么,当没有指定时触发器什么时候被触发?它记录在哪里?

CREATE TRIGGER

最佳答案

sqlite> create table t(x, triggervalue);
sqlite> insert into t(x) values(1);
sqlite> create trigger tt
   ...> update of x on t
   ...> begin
   ...>   update t set triggervalue = x;
   ...> end;
sqlite> update t set x = 2;
sqlite> select triggervalue from t;
1

所以默认值恰好是 BEFORE。

这在任何地方都没有记录,并且没有 BEFORE/AFTER 的语法看起来很丑陋,我猜没有人想到使用它。

关于triggers - SQLite创建触发器: What is the default if neither BEFORE nor AFTER has been specified?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20143031/

相关文章:

windows - 如何将 sqlite 与我的 Perl for Windows 应用程序打包在一起?

ios - 在 sqlite 中设置 user_version

android - 检查 ListView 是否为空

postgresql - 默认情况下用另一个列值更新一个列值

database - 级联更新到相关对象

sql-server-2008 - T-SQL INSTEAD OF DELETE 触发器在没有 'provocation' 的情况下触发

android - 获取今天生日的联系人

mysql - MySQL 触发器的多个 if 子句

javascript - Google Sheet 应用程序脚本时间戳条件

php - 我如何导入 SQLite db3 文件