SQLite3:同一个数据库中,复制一个表到另一个表中。

同一个数据库中,复制一个表到另一个表中。

源表是个动态表中,表中维持100条记录。发生事件后,把动态表中的所有记录(100条),拷贝到事件表中。

	char insert[128] = "insert into event_table select * from dynamic_table;";
	
	printf(" %s \n", insert);

	nRet = ExecSQL((const char*)insert, NULL);
	if(-1 == nRet) return -1;

拷贝之前的给数据表加锁,打开数据表,一系列操作可以自己实现。

函数:

//我这里db设置为全局变量了。
//可以自己在函数中定义:sqlite3 *db= NULL;
//读写锁,不需要的话,可以自己去掉。
//可以调用回调函数,我这里不需要,传递的NULL
int ExecSQL(const char* str,  int (*callback)(void*,int,char**,char**))
{
	int nRet;
	nRet = sqlite3_exec(db, str, callback,NULL,NULL);
	if (nRet != SQLITE_OK)
		{
			fprintf(stderr,"sqlite3_exec error :%s\r\n",sqlite3_errmsg(db));
			sqlite3_close(db);
			pthread_rwlock_unlock(&SQL_lock); //解锁
			return -1;
		}
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值