【发布时间】:2020-01-13 15:02:48
【问题描述】:
我正在开发一个实现 SQLite 数据库的 android 应用程序,我想创建一个触发器,该触发器可以运行多次,直到达到特定计数。
需要什么
有 2 个表 TABLE 1 和 TABLE 2
- 在表 1 上插入后,应调用触发器 12 次,然后 根据特定的 WHERE CLAUSE 在表 2 中插入 12 行
- 第 13 次 触发器不应插入任何新行。
我尝试了什么
DatabaseHelper 类中的 onOpen 函数
@Override
public void onOpen(SQLiteDatabase db) {
super.onOpen(db);
if (!db.isReadOnly()) {
// Enable foreign key constraints
db.execSQL("PRAGMA foreign_keys=ON;");
db.execSQL("PRAGMA recursive_triggers = ON;\n");
}
}
DatabaseHelper 类中的 onCreate 函数
public void onCreate(SQLiteDatabase db) {
createTables(db);
db.execSQL("CREATE TRIGGER multi_insertion AFTER INSERT ON TABLE1 \n" +
" WHEN (SELECT COUNT (*) from TABLE2 where MYNUMBER=1) < 12\n" +
" BEGIN\n " +
" insert into SCHEDULE (COLUMN1,COLUMN2) values ('001','002'); \n " +
" END;");
}
输出:它只在表 2 中插入了 1 行
有人可以帮我实现这一目标吗?任何帮助将不胜感激
【问题讨论】:
标签: android triggers android-sqlite android-database