如何在SQLite中的CREATE TRIGGER中替换WITH?

时间:2016-12-21 21:08:47

标签: sqlite

我有以下代码片段创建一个触发器,从同一个表中的任何其他行中提取一些信息,并使用与新添加的行相同的repldict={line.strip() for line in open(syspath+'/rules.txt', 'r')}

hash

但是,出于某种原因,SQLite doesn't support这样做了。我能看到做我想要的唯一方法似乎是为每个需要更新的值进行单独选择,如下所示:

CREATE TRIGGER if not exists tr 
after insert ON images 
BEGIN 

WITH a AS ( SELECT * FROM images WHERE hash = new.hash )
update images set 
categories = a.categories,
quality = a.quality,
ide = a.ide,
drawing = a.drawing,
ide_commentary = a.ide_commentary,
priority = a.priority
where rowid = new.rowid;

END

但这在每个级别上都很糟糕。有没有更好的方法呢?

0 个答案:

没有答案