SQL事务全攻略
一 事务的属性 事务具有ACID属性 即 Atomic原子性, Consistent一致性, Isolated隔离性, Durable永久性 原子性 就是事务应作为一个工作单元,事务处理完成,所有的工作要么都在数据库中保存下来,要么完全 回滚,全部不保留 一致性 事务完成或者撤销后,都应该
一 事务的属性
事务具有ACID属性
即 Atomic原子性, Consistent一致性, Isolated隔离性, Durable永久性
原子性
就是事务应作为一个工作单元,事务处理完成,所有的工作要么都在数据库中保存下来,香港虚拟主机,要么完全
回滚,全部不保留
一致性
事务完成或者撤销后,都应该处于一致的状态
隔离性
多个事务同时进行,它们之间应该互不干扰.应该防止一个事务处理其他事务也要修改的数据时,香港虚拟主机,
不合理的存取和不完整的读取数据
永久性
事务提交以后,所做的工作就被永久的保存下来
二 事务并发处理会产生的问题
丢失更新
当两个或多个事务选择同一行,然后基于最初选定的值更新该行时,会发生丢失更新问题、
每个事务都不知道其它事务的存在。最后的更新将重写由其它事务所做的更新,这将导致数据丢失。
脏读
当第二个事务选择其它事务正在更新的行时,会发生未确认的相关性问题。
第二个事务正在读取的数据还没有确认并且可能由更新此行的事务所更改。
不可重复读
当第二个事务多次访问同一行而且每次读取不同的数据时,会发生不一致的分析问题。
不一致的分析与未确认的相关性类似,因为其它事务也是正在更改第二个事务正在读取的数据。
然而,在不一致的分析中,第二个事务读取的数据是由已进行了更改的事务提交的。而且,不一致的分析涉及多次(两次或更多)读取同一行,而且每次信息都由其它事务更改;因而该行被非重复读取。
幻像读
当对某行执行插入或删除操作,而该行属于某个事务正在读取的行的范围时,会发生幻像读问题。
事务第一次读的行范围显示出其中一行已不复存在于第二次读或后续读中,因为该行已被其它事务删除。同样,由于其它事务的插入操作,免备案空间,事务的第二次或后续读显示有一行已不存在于原始读中。
三 事务处理类型
自动处理事务
系统默认每个T-SQL命令都是事务处理 由系统自动开始并提交
隐式事务
当有大量的DDL 和DML命令执行时会自动开始,并一直保持到用户明确提交为止,切换隐式事务可以用SET IMPLICIT_TRANSACTIONS
为连接设置隐性事务模式.当设置为 ON 时,SET IMPLICIT_TRANSACTIONS 将连接设置为隐性事务模式。当设置为 OFF 时,则使连接返回到自动提交事务模式
用户定义事务
由用户来控制事务的开始和结束 命令有: begin tran 、 commit tran 、 rollback tran 命令
分布式事务
跨越多个服务器的事务称为分布式事务,sql server 可以由DTc microsoft distributed transaction coordinator
来支持处理分布式事务,可以使用 BEgin distributed transaction 命令启动一个分布式事务处理
四 事务处理的隔离级别
使用SET TRANSACTION ISOLATION LEVEL来控制由连接发出的所有语句的默认事务锁定行为
从低到高依次是
(1)READ UNCOMMITTED
执行脏读或 0 级隔离锁定,这表示不发出共享锁,也不接受排它锁。当设置该选项时,可以对数据执行未提交读或脏读;在事务结束前可以更改数据内的数值,行也可以出现在数据集中或从数据集消失。该选项的作用与在事务内所有语句中的所有表上设置 NOLOCK 相同。这是四个隔离级别中限制最小的级别。
举例

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Lockwaittimeoutexceeded;tryrestartingtransaction – So beheben Sie den MySQL-Fehler: Transaktionswartezeitüberschreitung Bei Verwendung der MySQL-Datenbank kann es manchmal zu einem häufigen Fehler kommen: Lockwaittimeoutexceeded;tryrestartingtransaction. Dieser Fehler weist auf eine Transaktionswartezeitüberschreitung hin. Dieser Fehler tritt normalerweise auf, wenn

MySQL-Transaktionsverarbeitung: Der Unterschied zwischen automatischer Übermittlung und manueller Übermittlung. In der MySQL-Datenbank ist eine Transaktion eine Reihe von SQL-Anweisungen. Entweder sind alle Ausführungen erfolgreich oder alle Ausführungen schlagen fehl, wodurch die Konsistenz und Integrität der Daten sichergestellt wird. In MySQL können Transaktionen in automatische Übermittlung und manuelle Übermittlung unterteilt werden. Der Unterschied liegt im Zeitpunkt der Transaktionsübermittlung und im Umfang der Kontrolle über die Transaktion. Im Folgenden wird der Unterschied zwischen automatischer Übermittlung und manueller Übermittlung ausführlich vorgestellt und spezifische Codebeispiele zur Veranschaulichung gegeben. 1. Automatisch in MySQL übermitteln, wenn es nicht angezeigt wird

Das Prinzip und die Anwendungsszenarien von MySQL-Transaktionen Im Datenbanksystem ist eine Transaktion eine Reihe von SQL-Operationen, die entweder alle erfolgreich ausgeführt werden oder alle fehlschlagen und zurückgesetzt werden. Als häufig verwendetes relationales Datenbankverwaltungssystem unterstützt MySQL Transaktionsmerkmale und kann sicherstellen, dass die Daten in der Datenbank hinsichtlich Konsistenz, Isolation, Haltbarkeit und Atomizität garantiert sind. Dieser Artikel beginnt mit den Grundprinzipien von MySQL-Transaktionen, stellt deren Anwendungsszenarien vor und stellt spezifische Codebeispiele als Referenz für die Leser bereit. Das Prinzip der MySQL-Transaktionen: My

Transaktionen gewährleisten die Integrität der Datenbankdaten, einschließlich Atomizität, Konsistenz, Isolation und Haltbarkeit. JDBC verwendet die Verbindungsschnittstelle, um die Transaktionssteuerung bereitzustellen (setAutoCommit, Commit, Rollback). Parallelitätskontrollmechanismen koordinieren gleichzeitige Vorgänge mithilfe von Sperren oder optimistischer/pessimistischer Parallelitätskontrolle, um eine Transaktionsisolation zu erreichen und Dateninkonsistenzen zu verhindern.

1. Einführung in PDO PDO ist eine Erweiterungsbibliothek von PHP, die eine objektorientierte Möglichkeit zum Betrieb der Datenbank bietet. PDO unterstützt eine Vielzahl von Datenbanken, einschließlich MySQL, Postgresql, Oracle, SQLServer usw. PDO ermöglicht Entwicklern die Verwendung einer einheitlichen API zum Betrieb verschiedener Datenbanken, wodurch Entwickler problemlos zwischen verschiedenen Datenbanken wechseln können. 2. PDO stellt eine Verbindung zur Datenbank her. Um PDO zum Herstellen einer Verbindung zur Datenbank zu verwenden, müssen Sie zunächst ein PDO-Objekt erstellen. Der Konstruktor des PDO-Objekts erhält drei Parameter: Datenbanktyp, Hostname, Datenbankbenutzername und Passwort. Der folgende Code erstellt beispielsweise ein Objekt, das eine Verbindung zu einer MySQL-Datenbank herstellt: $dsn="mysq

Analyse von Lösungen für Transaktionsmanagementprobleme, die bei der Entwicklung der MongoDB-Technologie auftreten. Da moderne Anwendungen immer komplexer und umfangreicher werden, werden auch die Anforderungen an die Transaktionsverarbeitung für Daten immer höher. Als beliebte NoSQL-Datenbank verfügt MongoDB über eine hervorragende Leistung und Skalierbarkeit bei der Datenverwaltung. Allerdings weist MongoDB eine relativ schwache Datenkonsistenz und Transaktionsverwaltung auf, was die Entwickler vor Herausforderungen stellt. In diesem Artikel werden wir die bei der MongoDB-Entwicklung auftretenden Transaktionsmanagementprobleme untersuchen und einige Lösungen vorschlagen.

Die PHP Data Objects (PDO)-Erweiterung ermöglicht eine effiziente und objektorientierte Interaktion mit Datenbankservern. Seine erweiterten Abfrage- und Aktualisierungsfunktionen ermöglichen es Entwicklern, komplexe Datenbankoperationen durchzuführen und so die Leistung und Wartbarkeit des Codes zu verbessern. Dieser Artikel befasst sich mit den erweiterten Abfrage- und Aktualisierungsfunktionen von PDO und führt Sie durch die Beherrschung seiner leistungsstarken Funktionen. Erweiterte Abfragen: Platzhalter und gebundene Parameter verwenden Platzhalter und gebundene Parameter sind wichtige Werkzeuge zur Verbesserung der Abfrageleistung und -sicherheit. Platzhalter verwenden Fragezeichen (?), um ersetzbare Parameter in der Abfrage darzustellen, während Bind-Parameter es Ihnen ermöglichen, den Datentyp und den Wert jedes Parameters anzugeben. Durch die Verwendung dieser Methoden können Sie SQL-Injection-Angriffe vermeiden und die Leistung verbessern, da die Datenbank-Engine Abfragen im Voraus optimieren kann. //Platzhalter $stmt=$ verwenden

Was ist EJB? EJB ist eine JavaEE-Spezifikation (Java Platform, Enterprise Edition), die eine Reihe von Komponenten für die Erstellung serverseitiger Java-Anwendungen der Enterprise-Klasse definiert. EJB-Komponenten kapseln die Geschäftslogik und stellen eine Reihe von Diensten für die Abwicklung von Transaktionen, Parallelität, Sicherheit und anderen Belangen auf Unternehmensebene bereit. EJB-Architektur Die EJB-Architektur umfasst die folgenden Hauptkomponenten: Enterprise Bean: Dies ist der Grundbaustein der EJB-Komponenten, der Geschäftslogik und zugehörige Daten kapselt. EnterpriseBeans können zustandslos (auch Session-Beans genannt) oder zustandsbehaftet (auch Entity-Beans genannt) sein. Sitzungskontext: Der Sitzungskontext stellt Informationen über die aktuelle Client-Interaktion bereit, z. B. Sitzungs-ID und Client
