我的Android应用中的两个SQLite表:
填充这两个表时,如果PoweredEquip表中不存在VIN,我只需要插入Trailers表。所以在T-SQL中,我会做类似
的事情If Not Exists (Select VIN From PoweredEquip Where VIN = _VIN)
Insert Into Trailers Values (.....)
无需在PoweredEquip上执行选择,打开DataReader并检查HasRows是否为False以进行插入,我希望SQLite中存在If Not Exists(Select ...)等效项。
答案 0 :(得分:1)
在SQLite中没有直接的等价物。插入不支持任何条件(除非你通过INSERT INTO TABLE SELECT ...'来实现。可能有一些类似于INSTEAD OF INSERT
触发器的东西,它可以插入或不插入{{1}或者使用CASE
触发器删除不属于表的行。
未经测试的:
AFTER INSERT
编辑其他答案中提到的方式也应该有效:
CREATE TRIGGER remove_bad AFTER INSERT ON Trailers BEGIN
DELETE FROM Trailers WHERE NEW._VIN IN (SELECT VIN FROM PoweredEquip);
END;