我在数据库中有两个表:
- 表1具有姓名和房间号列
- 表2具有房间号和时间列。
现在,当删除或添加第一列的房间号时,我的第二个表也应该更新。我认为使用TRIGGER命令可以做到这一点,但我不确定如何使用它。
通常我的create database语句是这样的:
private static final String DATABASE_CREATE_PATIENT_ID_TABLE =
"create table " + DATABASE_PATIENT_TABLE +
" (_id integer primary key autoincrement,"
+ "patient_number text not null, room_numbertext not null, " +
"patient_initial text not null);";
现在,当在第一个表中删除或添加房间时,我的第二个表应该会更新。
private static final String DATABASE_CREATE_NOTES_ID_TABLE =
"create table " + DATABASE_NOTES_TABLE +
" (_id integer primary key autoincrement," +
" room_number text not null, time_hour text not null, " +
"notes_hour text not null, today_date text not null);";
最初我做的是比较两个表的内容。但这肯定会导致性能问题后,当数据将增加。所以我偶然发现触发器的东西。我认为这可以解决我的问题,但我不知道我到底应该如何使用它。
我是从Using SQLite Database with Android那里知道这件事的。
我在另一个问题中已经用截图解释了这个问题,请看一下,如果可以的话请指导一下new question
3条答案
按热度按时间mpgws1up1#
简单的开始
使用此文档http://www.sqlite.org/lang_createtrigger.html
gjmwrych2#
根据应用运行的SQLite版本,您可能可以使用SQLite's foreign key support。
在旧版本的SQLite中,您可以使用genfkey实用程序来创建触发器,以强制执行外键约束(旧版本的SQLite将解析在
CREATE TABLE
语句中添加的外键约束,但实际上不会实现它们)。uubf1zoe3#
Demo for Sqlite Trigger in Android HERE
触发器是在数据库中某个事件发生后执行的一些过程代码。
我已经写了一个触发器示例演示。
例如:考虑一个大学的数据库,如果在学生表中添加了学生记录,那么新的行(元组)会自动添加到图书馆或食堂等区域。
因此,通过编写一个简单的触发器,我们可以自动地在其他部分插入新记录,从而避免编写样板代码。
图式
图书馆、食堂表自动增加记录触发器:
解释:这里的概念是创建一个触发器,它根据新的学号插入食堂和图书馆的值。