1、Transaction
事务在将要对数据库进行批量操作,并且必须保证所有操作都成功时才通过时使用。
SQLiteDatabase.beginTransaction(); // 开启一个事务
try {
... // do somethings
SQLiteDatabase.setTransactionSuccessful(); //设置事务标志为true
} try {
} finally {
SQLiteDatabase.endTransaction(); // 结束事务
}
默认标志为false,结束事务时,执行rollback操作,即开启事务到结束事务这段时间对数据库的操作将会撤销,
当设置标志为true(setTransactionSuccessful())时,数据库的处理将commit.
2、 Trigger(触发器)
// 创建触发器:
CREATE TRIGGER triggerName BEFORE|AFTER INSERT|DELETE|UPDATE of cloumn1,cloumn2...
ON tableName
[FOR EACH ROW|FOR EACH STATEMENT] // SQLite触发器仅支持FOR EACH ROW(对于每一行),不支持FOR EACH STATEMENT(对于每一项)
[WHEN 判断条件]
BEGIN
... SQL语句 // 我们需要注意的一点是在begin与end之间的操作中,对前面作用表的新旧数据使用new和old进行指向
END
// 删除:
DROP TRIGGER IF EXISTS triggeName;
Trigger在数据库中是以对象存在的,所以triggerName必须唯一。
3、 SQLite 方法:
PHONE_NUMBERS_EQUAL(number1, number2, 0) 只能匹配号码的后七位, 第三个参数,0,是泰国的标准
REPLACE(column, str1, str2) 替换,可用于去空格,横线
union合并多个select语句的结果集,select语句必须拥有相同数量、相似数据类型的列。