所以我遇到了以下方面:
sqlite日期
sqlite日期函数
它解释了如何在SQLITE中使用日期函数(这是sql中日期添加的等价项(
因此,我想出了一个主意,将日期函数参数(间隔、值(存储在表中,我想在触发器中使用这些参数。这看起来像这样:
database.execSQL(
"CREATE TRIGGER IF NOT EXISTS tr_afMR " +
"AFTER INSERT ON Table1 " +
"BEGIN " +
"UPDATE Table2 SET nextRepeatDate = date(nextRepeatDate,+interval repeatmentType)" +
"WHERE NEW.idTable2=Table2.idTable; " +
"END;");
在这种情况下,interval
(=1,2,..(和repeatmentType
(DAY,MONTH,YEAR(是Table2
中的参数,但问题是sqlite无法将表2列识别为参数:'(', ')', '.', BETWEEN or IN expected, got 'repeatmentType'
是否可以将sqlite中的表列用作params?或者这种函数只能在sql中使用吗?
date()
的第二个参数是字符串,您可以通过连接interval
和repeatmentType
:来构造它
CREATE TRIGGER IF NOT EXISTS tr_afMR
AFTER INSERT ON Table1
BEGIN
UPDATE Table2
SET nextRepeatDate = date(nextRepeatDate, interval || ' ' || repeatmentType)
WHERE idTable = NEW.idTable2;
END;
表达式interval || ' ' || repeatmentType
将被评估为类似于'3 day'
的东西。不需要+
符号。