Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用SQLite上的触发器替换DELETE for UPDATE_Sqlite_Triggers - Fatal编程技术网

用SQLite上的触发器替换DELETE for UPDATE

用SQLite上的触发器替换DELETE for UPDATE,sqlite,triggers,Sqlite,Triggers,在SQLite中,是否可以在触发器中进行更新而不是删除? 也就是说,我有两张桌子: CREATE TABLE author (authorid INTEGER PRIMARY KEY, temporal NUMERIC); CREATE TABLE comment (id INTEGER PRIMARY KEY, text TEXT, authorid INTEGER, FOREIGN KEY(authorid) REFERENCES author(authorid)); 当尝试删除作者时,如

在SQLite中,是否可以在触发器中进行更新而不是删除? 也就是说,我有两张桌子:

CREATE TABLE author (authorid INTEGER PRIMARY KEY, temporal NUMERIC);
CREATE TABLE comment (id INTEGER PRIMARY KEY, text TEXT, authorid INTEGER, FOREIGN KEY(authorid) REFERENCES author(authorid));
当尝试删除作者时,如果有任何引用该作者的注释,我希望更新“临时”字段并中止删除


我已经用触发器测试了不同的方法,但是我没有找到一种方法来完成这两件事,进行更新和中止删除。我可以中止删除(虽然在这种情况下,这是不必要的,因为它是由外键约束强制执行的)或进行更新(虽然删除将删除记录,因此更新无效)

只有使用
RAISE
生成错误,才能中止删除,但这将导致任何
更新
都被回滚

您可以将
author
设置为一个视图,并创建多个
,而不是将大多数操作传递到基表的
触发器。

但是,处理应用程序中的
时态逻辑要容易得多。

请看一下而不是触发器。我已经看过了,但它们只能应用于视图,不能应用于表。