如何捕获SQLite触发器引发事件

时间:2014-08-20 06:31:15

标签: java sqlite exception triggers

我的sqllite数据库上有一个触发器可以正常工作。

db.execSQL("CREATE TRIGGER no_name_duplicate " +
        " BEFORE INSERT "+
        " ON "+profileTable+

        " FOR EACH ROW BEGIN"+
        " SELECT CASE WHEN ((SELECT "+colProfileName+" FROM "+profileTable+" WHERE "+colProfileName+"=new."+colProfileName+" ) IS NOT NULL)"+
        " THEN RAISE (ABORT,'My Violation') END;"+
        "  END;");

举起活动

android.database.sqlite.SQLiteConstraintException: My Violation(code 19)

现在,如果您想捕获该异常(或编辑上述代码)以显示消息或记录某些内容,您将如何进行。

总结一下,当触发器触发时,如何触发此Log.v("test","test")

1 个答案:

答案 0 :(得分:0)

我发现最好的方法是返回rowID。

long newRowId;
newRowId = db.insert(tableName,primaryKey,values);

如果触发该触发器,您将获得-1的行ID。然后只需显示您的消息或记录任何行,如果您获得行ID为-1