【发布时间】:2021-12-31 20:31:49
【问题描述】:
我正在尝试在 android studio 中插入验证概念之前使用 sqlite 触发器。我正在使用 3 个字段 - farmer_id、farmer_name、father_name,如果 farmer_name 为空,我试图显示错误消息为“Farmer Name is required”。所以我在android studio中使用了如下触发编码
String farmer_insert_trigger = "CREATE TRIGGER insert_validation" +
"BEFORE INSERT on farmer_det" +
"BEGIN SELECT CASE WHEN new.farmer_name IS '' THEN" +
"RAISE(ABORT,'Farmer Name is mandatory')" +
"end;" +
"end;";
public void createTriggers() {
SQLiteDatabase db = this.getWritableDatabase();
db.execSQL(farmer_insert_trigger);
}
当我点击“提交”按钮以将错误消息显示为“农民姓名是必需的”时,在编译 CREATE Triger 时收到错误消息为 “在“SELECT”附近:语法错误(代码 1);。 .."。 下面是我的按钮点击事件。
btn.setOnClickListener(v->{
String farmerID = farmer_id.getText().toString();
String farmerName = farmer_name.getText().toString();
String fatherName = father_name.getText().toString();
try {
// Execute insert function
dbHandler.createTriggers();
} catch (SQLiteConstraintException e) {
Toast.makeText(MainActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
} catch (Exception e) {
// Just in case the above doesn't catch it
Toast.makeText(MainActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
}
});
我在创建触发器时是否遗漏了任何语法。
【问题讨论】: