sqlite触发器一例

int column_names_printed = 0;
void print_row(int n_values, char** values)
{
    int i;
    for (i = 0; i < n_values; ++i) {
        printf("%10s", values[i]);
    }
    printf("/n");
}
int print_result(void* data, int n_columns, char** column_values, char** column_names)
{
    if (!column_names_printed) {
        print_row(n_columns, column_names);
        column_names_printed = 1;
    }
  
    print_row(n_columns, column_values);
 
   return 0;
}
int sqlite()
{
    sqlite3 *db=NULL;
    char *errMsg = NULL;
    int rc;
  
    rc = sqlite3_open("test.db", &db);
    if( rc ){
        fprintf(stderr, "Can't open database: %s/n", sqlite3_errmsg(db));
        sqlite3_close(db);
        exit(1);
    }
    else printf("open test.db successfully!/n");
  
    rc = sqlite3_exec(db, "BEGIN TRANSACTION;", NULL, NULL, NULL);
    rc = sqlite3_exec(db, "CREATE TABLE students(number varchar(10), name varchar(10), /
                           sex varchar(6), age varchar(2));", NULL, NULL, NULL);
    rc = sqlite3_exec(db, "INSERT INTO students VALUES('00001', 'Mary', 'female', '15');/
                           INSERT INTO students VALUES('00002', 'John', 'male', '16');/
                           INSERT INTO students VALUES('00003', 'Mike', 'male', '15');/
                           INSERT INTO students VALUES('00004', 'Kevin', 'male', '17');/
                           INSERT INTO students VALUES('00005', 'Alice', 'female', '14');/
                           INSERT INTO students VALUES('00006', 'Susan', 'female', '16');/
                           INSERT INTO students VALUES('00007', 'Christina', 'female', '15');/
                           INSERT INTO students VALUES('00008', 'Brian', 'male', '16');/
                           INSERT INTO students VALUES('00009', 'Dennis', 'male', '14');/
                           INSERT INTO students VALUES('00010', 'Daphne', 'female', '18');",
                           NULL, NULL, &errMsg);
  
      
    rc = sqlite3_exec(db, "COMMIT TRANSACTION;", NULL, NULL, NULL);
  
    rc = sqlite3_exec(db, "Create  Trigger UserOK_DeleteOK AFTER DELETE On students FOR EACH ROW  /
                          begin /
                          delete from students where number = '00001' and old.number = '00010' ;/
                          end;",
                          NULL, NULL, &errMsg);

    printf("error code: %d/n", rc);
    printf("error message: %s/n", errMsg);
    sqlite3_close(db);
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值