如何在Android SQLite中使用TRIGGER

我在数据库中有两个表:

  • 表一有名字和房间号码栏
  • 表二有房间号和时间栏。

现在当第一列的房间号码被删除或添加时,我的第二张桌子也应该更新。 我觉得这可能与TRIGGER命令,但我真的不知道如何使用它。

通常我的创build数据库语句是这样的:

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);"; 

最初我在做的是比较两张表的内容。 但是当数据增加时,这肯定会导致性能问题。 所以我偶然发现了TRIGGER的事情。 我认为这可以解决我的问题,但我不知道我应该如何使用它。

我从Android使用SQLite数据库来了解它。

我用另一个问题的屏幕截图解释了这个问题。 请看看它,如果请引导我 新的问题

Solutions Collecting From Web of "如何在Android SQLite中使用TRIGGER"

简单的开始为你

 create trigger simple_trigger1 after insert on database_patient_table begin update database_notes_table; end create trigger simple_trigger2 after delete on database_patient_table begin update database_notes_table; end 

使用这个文档http://www.sqlite.org/lang_createtrigger.html

根据您的应用程序在哪个版本的SQLite上运行 ,您可以使用SQLite的外键支持 。

在较早版本的SQLite中,您可以使用genfkey实用程序来创build触发器来强制执行外键约束(旧版本的SQLite将parsing在CREATE TABLE语句中添加的外键约束,但实际上不会实现这些约束)。

希望这可以帮助。

演示为Android HERE中的Sqlite触发器

触发器是在我们的数据库中发生某些事件之后执行的一些程序代码。

我写了一个示例触发器示例。

例如:考虑任何大学的数据库。 因此,如果在学生表中添加了学生logging,则会在库部分或食堂部分自动添加新行(元组)。

所以通过编写一个简单的触发器,我们可以自动在其他部分插入新的logging,避免锅炉代码。

架构

  CREATE TABLE student (sid INTEGER PRIMARY KEY, sname TEXT) CREATE TABLE canteen (cid , sid ) CREATE TABLE library (lid INTEGER PRIMARY KEY, sid TEXT) 

触发器自动添加库和食堂表中的logging:

 CREATE TRIGGER if not exists add_student AFTER INSERT ON[student] for each row BEGIN insert into library values (2 , new.sid ); insert into canteen values (3 , new.sid); END; 

说明:这里的概念是创build一个触发器,它根据新的学生ID在食堂和图书馆中插入值。