【发布时间】:2011-08-24 09:33:27
【问题描述】:
我在数据库中有两个表:
- 表一有姓名和房间号栏
- 表二有房间号和时间栏。
现在,当第一列的房间号被删除或添加时,我的第二个表也应该更新。我认为使用 TRIGGER 命令可以做到这一点,但我不确定如何使用它。
一般我的创建数据库语句是这样的:
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的东西。我认为这可以解决我的问题,但我不知道我应该如何使用它。
我是从Using SQLite Database with Android知道的。
我已经在另一个问题中用屏幕截图解释了这个问题。请看一下,如果请指导我 new question
【问题讨论】:
-
为什么人们提出关于数据库问题的问题如此不愿意在问题中命名他们的表?这不仅针对您,Shaista(尽管您在这个问题上对此感到“内疚”);这是关于 SO 上与数据库相关的问题的一般性观察。
-
但我已将其命名为您在代码中看到的名称。它直接来自我的代码,只有当我解释它时才简短地指出直接问题。我的意图很明确,可能会被误解。
-
@Jonathan - 有与工作相关的不同问题,除非他们完全完成,否则没有人愿意向公众透露他们的工作代码。只是我的意见。
-
@Jonathan:我猜第一个表被称为“PATIENTS”,第二个表被称为“NOTES”或“PATIENT_NOTES”。你的观点到底是什么?不管 Shaista 数据库中的实际表名是什么,知道它们的名称与在 Android SQLite 数据库中使用 TRIGGER 的问题无关。
-
@yogsma:我理解不命名与工作相关的表格 - 但至少如果问题中有名字(不必与工作场景中的相同),那么答案可以一致地说话,而不是强迫每个人为表格提出自己的名称,从而难以关联不同答案的不同部分。 @Shaista:您间接命名它们; DATABASE_PATIENT_TABLE 和 DATABASE_NOTES_TABLE 是(大概)保存表名称的变量。最好将它们命名在要点所在的位置:一个表是 Patients ...;另一个是Notes。
标签: android database sqlite triggers