0
當我的應用程序第一次安裝時,我以編程方式創建數據庫。迄今爲止工作良好。但是當我想添加一個觸發器時,我得到一個異常說「IF附近的語法錯誤」。問題是,我無法跨越源代碼中多行的字符串。那我能做些什麼呢?Sqlite:以編程方式創建觸發器
private void createTriggers(SQLiteDatabase database) {
final String triggerLocationArchived = "CREATE TRIGGER location_archived AFTER UPDATE ON location FOR EACH ROW BEGIN IF NEW.deleted <> OLD.deleted THEN UPDATE sector set sector.deleted = NEW.deleted WHERE sector.location = NEW._id; END IF; END;";
database.execSQL(triggerLocationArchived);
}
有兩個表:位置和扇區。每個都有一個INTEGER標誌,指示該行是否已被歸檔。所以我希望所有的孩子(一個地點內的部門)都歸檔,如果父母(地點)歸檔。
Java源代碼 – Matthias
格式化僅僅是爲了顯示內多條線路,則不能定義一個字符串。你的命令是錯誤的。例外,「IF附近的語法錯誤」發生,因爲你不能使用「if」,再看一遍,我把「if」改爲「when」。刪除格式並放入您的代碼。它會工作。 – JoeyRA
哦,我錯過了那部分。現在嘗試過,但也不起作用。現在它說錯誤「near」WHEN「:語法錯誤」 – Matthias