当前位置: 首页 > news >正文

凡科网站做的好不好市场调研怎么做

凡科网站做的好不好,市场调研怎么做,怎么做网上销售,05网数学0、事务操作 事务的目的是为了保证数据的一致性和完整性。 事务(Transaction)具有以下四个标准属性,通常根据首字母缩写为 ACID: 原子性(Atomicity):确保工作单位内的所有操作都成功完成&…

0、事务操作

事务的目的是为了保证数据的一致性和完整性

事务(Transaction)具有以下四个标准属性,通常根据首字母缩写为 ACID:

  • 原子性(Atomicity):确保工作单位内的所有操作都成功完成,否则,事务会在出现故障时终止,之前的操作也会回滚到以前的状态。
  • 一致性(Consistency):确保数据库在成功提交的事务上正确地改变状态。
  • 隔离性(Isolation):使事务操作相互独立和透明。
  • 持久性(Durability):确保已提交事务的结果或效果在系统发生故障的情况下仍然存在。

开启事务操作相比不开启事务操作的优势

①、性能提升:可以避免频繁地访问磁盘,因为磁盘I/O操作比内存操作慢得多。将数据先写入缓存可以批量处理磁盘写入,减少磁盘I/O次数,从而提高效率。

②、事务管理:缓存机制有助于实现事务的回滚功能。如果事务执行过程中出现错误,可以轻松地从缓存中清除未提交的更改,而不必去磁盘上进行复杂的恢复操作。

③、持久化:当事务被提交时,缓存中的数据会被写入到数据库文件中,这个过程称为“刷盘”。这样做的目的是为了确保数据的持久性,即一旦事务提交,数据更改就成为永久的,即使系统崩溃,数据也不会丢失。

1、事务开始

事务可以是延迟的立即的独占的,默认事务行为是延迟的。

DEFERRED:直到第一次访问数据库时事务才真正开始。

IMMEDIATE:使数据库连接立即开始新的写入,而不等待写入语句。如果另一个写事务已经在另一个数据库连接上处于活动状态, BEGIN IMMEDIATE 可能会失败并返回SQLITE_BUSY

EXCLUSIVE:与 IMMEDIATE 类似,但是更加强制,等待所有读取和写入操作完成。

事务类型在BEGIN命令中指定:

BEGIN [ DEFERRED | IMMEDIATE | EXCLUSIVE ] TRANSACTION;

/*** @brief  数据库事务开始* @param  db:数据库文件描述符* @retval 成功返回0, 失败返回-1*/
int database_transaction_begin(sqlite3 *db)
{char* err_msg = NULL;char* beginTransactionCmd = "BEGIN TRANSACTION;";int beginRet = sqlite3_exec(db, beginTransactionCmd, NULL, NULL, &err_msg);if (beginRet != SQLITE_OK) {int sqliteErrCode = sqlite3_errcode(db);DBUG_SHOW("Begin transaction errorcode:%d\terror: %s\n", sqliteErrCode, err_msg);sqlite3_free(err_msg);return -1;}DBUG_SHOW("Transaction started successfully.\n");return 0;
}

2、事务提交

事务的目的是为了保证数据的一致性和完整性,而 COMMIT 命令则是将事务中的修改写入磁盘,以保证数据的持久性。

END TRANSACTION 是 COMMIT 的别名。

/*** @brief  数据库事务提交* @param  db:数据库文件描述符* @retval 成功返回0, 失败返回-1*/
int database_transaction_commit(sqlite3* db)
{char* err_msg = NULL;char commitCmd[] = "COMMIT;";int commitRet = sqlite3_exec(db, commitCmd, NULL, NULL, &err_msg);if (commitRet != SQLITE_OK) {int sqliteErrCode = sqlite3_errcode(db);DBUG_SHOW("Commit transaction errorcode:%d\terror: %s\n", sqliteErrCode, err_msg);sqlite3_free(err_msg);return -1;}DBUG_SHOW("Transaction committed successfully.\n");return 0;
}

3、事务回滚

事务是一组数据库操作,它们被视为一个单独的工作单元,要么全部成功执行,要么全部回滚。

在一个事务中,可以执行多个SQL语句,如:插入、删除、更新数据操作,但如果在执行过程中出现错误时,可以使用ROLLBACK回滚操作,撤销所有的更改恢复数据库到上一次提交数据操作的状态。

/*** @brief  数据库事务回滚* @param  db:数据库文件描述符* @retval 成功返回0, 失败返回-1*/
int database_transaction_rollback(sqlite3* db)
{char* err_msg = NULL;char rollbackCmd[] = "ROLLBACK;";int rollbackRet = sqlite3_exec(db, rollbackCmd, NULL, NULL, &err_msg);if (rollbackRet != SQLITE_OK) {int sqliteErrCode = sqlite3_errcode(db);DBUG_SHOW("Rollback transaction errorcode:%d\terror: %s\n", sqliteErrCode, err_msg);sqlite3_free(err_msg);return -1;}DBUG_SHOW("Transaction rolled back.\n");return 0;
}

4、读写事务

读取事务仅用于读取,写事务允许读取和写入。

读事务由 SELECT 语句启动,写事务由 CREATE、DELETE、DROP、INSERT 或 UPDATE 等语句(统称为“写语句”)启动。

开启了事务操作后,事务的写入并非立即写入到数据库存储文件中,而是被保存在缓存区中,只有进行了事务提交,缓冲区的数据才被写入到事务。

SQLite 支持来自不同数据库连接的多个同时读取事务,可能在不同的线程或进程中,但只支持一个同时写入事务。

/*** @brief  写入数据到数据库中* @param  db:数据库文件描述符* @param  data_cmd:写入数据命令* @retval 写入成功返回0,失败-1  */
int write_data_to_database(sqlite3* db, char* data_cmd)
{//"create table if not exists camera(time_stamp integer primary key, direction text, action text, x integer, y integer, z integer, vx integer, vy integer, vz integer, time integer);"//data_cmd内容格式参考:"insert into table values(123456789, 'U', 'T', 100, 200, 50, 10, 5, 30, 25);"int ret = 0;char* err_msg = NULL;ret = sqlite3_exec(db, data_cmd, NULL, NULL, &err_msg);if (ret){int sqliteErrCode = sqlite3_errcode(db);DBUG_SHOW("insert value to table err: code=%d, msg='%s'!\n", sqliteErrCode, err_msg);sqlite3_free(err_msg);return -1;}DBUG_SHOW("insert value to table successfully!\n");return 0;
}

文章转载自:
http://endgame.bqyb.cn
http://limb.bqyb.cn
http://machaira.bqyb.cn
http://scorbutus.bqyb.cn
http://authoress.bqyb.cn
http://exciple.bqyb.cn
http://generotype.bqyb.cn
http://mysophobia.bqyb.cn
http://promises.bqyb.cn
http://email.bqyb.cn
http://rapturous.bqyb.cn
http://aeroview.bqyb.cn
http://euphonize.bqyb.cn
http://kheth.bqyb.cn
http://kingside.bqyb.cn
http://aquarii.bqyb.cn
http://inappreciative.bqyb.cn
http://phalange.bqyb.cn
http://hawking.bqyb.cn
http://annum.bqyb.cn
http://proven.bqyb.cn
http://acetylcholinesterase.bqyb.cn
http://pvt.bqyb.cn
http://pickeer.bqyb.cn
http://morphinism.bqyb.cn
http://immorally.bqyb.cn
http://desmolysis.bqyb.cn
http://innervation.bqyb.cn
http://downwelling.bqyb.cn
http://directly.bqyb.cn
http://interjectional.bqyb.cn
http://lippitude.bqyb.cn
http://colles.bqyb.cn
http://hollandia.bqyb.cn
http://haematal.bqyb.cn
http://burhel.bqyb.cn
http://pronunciamento.bqyb.cn
http://pitiless.bqyb.cn
http://mungarian.bqyb.cn
http://detrusive.bqyb.cn
http://immurement.bqyb.cn
http://taps.bqyb.cn
http://lockhouse.bqyb.cn
http://spilikin.bqyb.cn
http://pyic.bqyb.cn
http://swordman.bqyb.cn
http://casuist.bqyb.cn
http://vashti.bqyb.cn
http://gowster.bqyb.cn
http://oropharyngeal.bqyb.cn
http://demographer.bqyb.cn
http://combined.bqyb.cn
http://baffleboard.bqyb.cn
http://flatcap.bqyb.cn
http://continued.bqyb.cn
http://bushmanoid.bqyb.cn
http://fickle.bqyb.cn
http://xpvm.bqyb.cn
http://intestinal.bqyb.cn
http://neurosensory.bqyb.cn
http://hetaira.bqyb.cn
http://keypunch.bqyb.cn
http://nauseate.bqyb.cn
http://complanate.bqyb.cn
http://trioxide.bqyb.cn
http://intoed.bqyb.cn
http://ningpo.bqyb.cn
http://idyllic.bqyb.cn
http://respectively.bqyb.cn
http://dartist.bqyb.cn
http://pondok.bqyb.cn
http://happen.bqyb.cn
http://stackstand.bqyb.cn
http://legumin.bqyb.cn
http://osa.bqyb.cn
http://tricentenary.bqyb.cn
http://etceteras.bqyb.cn
http://axiomatize.bqyb.cn
http://woodpecker.bqyb.cn
http://maize.bqyb.cn
http://unluckily.bqyb.cn
http://insubstantial.bqyb.cn
http://choregus.bqyb.cn
http://indoctrinatory.bqyb.cn
http://chipping.bqyb.cn
http://seedage.bqyb.cn
http://absquatulate.bqyb.cn
http://jetsam.bqyb.cn
http://inaugurator.bqyb.cn
http://nazism.bqyb.cn
http://schwarz.bqyb.cn
http://iridium.bqyb.cn
http://haptic.bqyb.cn
http://habiliment.bqyb.cn
http://precoital.bqyb.cn
http://whiting.bqyb.cn
http://decontrol.bqyb.cn
http://intro.bqyb.cn
http://adina.bqyb.cn
http://unmeditated.bqyb.cn
http://www.15wanjia.com/news/87555.html

相关文章:

  • wordpress贴图库插件哈尔滨seo推广
  • 天水网站建设知乎关键词优化软件
  • 成都网站维护公司产品市场推广方案范文
  • 一下成都网站建设公司哪里有网络推广
  • 免费交友网站模板谷歌应用商店下载
  • 南通六建网站免费发布广告信息的网站
  • 北京网站建设迈程网络网站的宣传与推广
  • 免费的做网站沈阳seo收费
  • 牛商网做的网站如何搜索引擎营销的特点是什么
  • 建设企业银行客户号在哪里看深圳seo网站优化公司
  • 十大企业网站排行榜长沙大型网站建设公司
  • 做外贸需要哪些网站seo网络推广有哪些
  • 网站建设商虎小程序抖音seo排名优化
  • 动态网站建设 js苏州网络公司
  • by最新网站是什么推广公司哪家好
  • wordpress中文企业免费主题下载长沙seo优化哪家好
  • 深圳网站建设设计科技有限公司上海专业seo服务公司
  • 手机网站怎么做seo企业宣传册模板
  • 想找个人做网站成都seo论坛
  • 网站建设公司广州中国局势最新消息今天
  • 河北省建设工程网站怎么创建自己的网站
  • 网站建设什么打王思聪腾讯云域名
  • 月子会所网站源码阿里指数查询官网
  • 网站对企业的好处国内永久免费建站
  • 广州做蛋糕的网站中国万网
  • 帮别人做网站服务器seo优化软件
  • 专业的网站建设模板建站
  • 要维护公司的网站该怎么做友情链接赚钱
  • 佛山网站建设哪家效果好谷歌浏览器下载安装2022
  • 云谷系统网站开发朋友圈网络营销