検索

bitsCN.com

My SQL Server →5事务处理

 

.事务的概念

   事务机制将一组数据库操作命令当作一个完整且独立的操作序列,即一组命令要么全部执行成功,要么都执行失败。

1.事务的作用:要么所有操作全部完成,要么所有操作全部不执行。

2.什么是事务

     数据库中的事务是一种机制,每个事务时一个独立的工作单元,它包含了一组数据库操作命令,且这组命令要么执行,要么都不执行,因此事务时一个不可分割的工作逻辑单元。

3. 事务的属性:

①原子性:事务的各个元素是不可分的。

②一致性:事务完成时必须使所有的数据都保持一致。

③隔离性:对数据进行修改的所有并发事务时彼此隔离的。

④持久性:只要事务成功提交之后,就不能再次回滚到提交前的状态。

  

·事务的使用

1.创建事务:

①开始事务:BEGIN TRANSACTION

②提交事务:COMMIT TRANSACTION

③回滚事务:ROLLBACK TRANSACTION

分类:

    显示事务:用begin transaction明确指定事务的开始,后续的T-SQL语句都是一个整体。

    隐式事务:使用Set implicit_transaction on语句,将隐式事务设置为打开。

    自动提交事务:是SQL Server d的默认模式,它将每条单独的T-Sql语句视为一个事务,如果成功执行则自动提交,如果失败,则自动回滚。

常用的是显示事务,它明确指定事务开始的边界。事务包含的语句越少越好,无关的语句不要放在事务里,如变量的声明和赋值。

2.创建事务的原则:

①事务要尽可能的简短。

②在事务中访问的数据量要尽量最少。

③浏览数据时尽量不要打开事务。

④在事务处理期间尽量不要请求用户输入。

 

.在存储过程中使用事务

1.使用事务的注意事项:

①在每个操作之后,都有检查@@error 或 @@rowcount的值。

②当一个事务结束后,紧跟在事务之后的T-sql代码还可以继续执行,但是出错后就不能再回滚事务了。

③已经提交完毕的事务将会将数据正式写入数据库。

④在一个事务正在执行时,如发生停电等意外,则再下次重启系统是该事务会自动回滚。

⑤在事务例发生错误使得事务无法执行下去,事务也会自动回滚。

⑥无法回滚的语句不能再事务中使用。

例:

   create database 创建数据库

   alter database  修改数据库

   drop database   删除数据库

 

.事务的隔离级别

①Read uncommitted:不隔离数据,即使事务正在使用的同时,其他事务也能同时修改或删除该数据。

②Read committed:不允许读取没有提交的数据

③Repeatable Read:子事务中锁定所读取的数据不让比人修改和删除。

④Snapshot:快照隔离,可以为读取数据的事务提供所需数据的一个已提交的版本,因此写入数据的事务阻塞不会读取数据的事务。

⑤Serializable:将事务所要用到的数据表全部锁定,不允许其他事务添加、修改和删除数据。

 

bitsCN.com
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Alter Tableステートメントを使用してMySQLのテーブルをどのように変更しますか?Alter Tableステートメントを使用してMySQLのテーブルをどのように変更しますか?Mar 19, 2025 pm 03:51 PM

この記事では、MySQLのAlter Tableステートメントを使用して、列の追加/ドロップ、テーブル/列の名前の変更、列データ型の変更など、テーブルを変更することについて説明します。

MySQL接続用のSSL/TLS暗号化を構成するにはどうすればよいですか?MySQL接続用のSSL/TLS暗号化を構成するにはどうすればよいですか?Mar 18, 2025 pm 12:01 PM

記事では、証明書の生成と検証を含むMySQL用のSSL/TLS暗号化の構成について説明します。主な問題は、セルフ署名証明書のセキュリティへの影響を使用することです。[文字カウント:159]

MySQLの大きなデータセットをどのように処理しますか?MySQLの大きなデータセットをどのように処理しますか?Mar 21, 2025 pm 12:15 PM

記事では、MySQLで大規模なデータセットを処理するための戦略について説明します。これには、パーティション化、シャード、インデックス作成、クエリ最適化などがあります。

人気のあるMySQL GUIツール(MySQL Workbench、PhpMyAdminなど)は何ですか?人気のあるMySQL GUIツール(MySQL Workbench、PhpMyAdminなど)は何ですか?Mar 21, 2025 pm 06:28 PM

記事では、MySQLワークベンチやPHPMyAdminなどの人気のあるMySQL GUIツールについて説明し、初心者と上級ユーザーの機能と適合性を比較します。[159文字]

ドロップテーブルステートメントを使用してMySQLにテーブルをドロップするにはどうすればよいですか?ドロップテーブルステートメントを使用してMySQLにテーブルをドロップするにはどうすればよいですか?Mar 19, 2025 pm 03:52 PM

この記事では、ドロップテーブルステートメントを使用してMySQLのドロップテーブルについて説明し、予防策とリスクを強調しています。これは、バックアップなしでアクションが不可逆的であることを強調し、回復方法と潜在的な生産環境の危険を詳述しています。

JSON列にインデックスを作成するにはどうすればよいですか?JSON列にインデックスを作成するにはどうすればよいですか?Mar 21, 2025 pm 12:13 PM

この記事では、クエリパフォーマンスを強化するために、PostgreSQL、MySQL、MongoDBなどのさまざまなデータベースでJSON列にインデックスの作成について説明します。特定のJSONパスのインデックス作成の構文と利点を説明し、サポートされているデータベースシステムをリストします。

外国の鍵を使用して関係をどのように表現しますか?外国の鍵を使用して関係をどのように表現しますか?Mar 19, 2025 pm 03:48 PM

記事では、外部キーを使用してデータベース内の関係を表すことで、ベストプラクティス、データの完全性、および避けるべき一般的な落とし穴に焦点を当てています。

共通の脆弱性(SQLインジェクション、ブルートフォース攻撃)に対してMySQLを保護するにはどうすればよいですか?共通の脆弱性(SQLインジェクション、ブルートフォース攻撃)に対してMySQLを保護するにはどうすればよいですか?Mar 18, 2025 pm 12:00 PM

記事では、準備されたステートメント、入力検証、および強力なパスワードポリシーを使用して、SQLインジェクションおよびブルートフォース攻撃に対するMySQLの保護について説明します。(159文字)

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン