Android SQLite & Trigger

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语句必须拥有相同数量、相似数据类型的列。

你可能感兴趣的:(android,sqlite,trigger)