在 SQL 中,BEGIN 和 END 用作交易的邊界標記,以確保操作的原子性、持久性、隔離性。 BEGIN 開始事務,END 可提交或回溯事務。 1. BEGIN 開始事務。 2. 執行操作(插入、更新等)。 3. COMMIT 提交事務,使變更永久化。 4. ROLLBACK 回滾事務,撤銷更改。
SQL 中BEGIN 和END 的用法
在SQL 中,BEGIN 和END 用作交易的邊界標記。事務是一系列原子操作,要麼全部成功,要麼全部失敗。 BEGIN 和 END 用於將這些操作組合在一起,以確保原子性。
用法
BEGIN 語句開始一個事務,而END 語句提交或回溯事務:
<code class="sql">BEGIN; -- 开始事务 -- 执行操作... COMMIT; -- 提交事务(使更改永久化) -- 或者 ROLLBACK; -- 回滚事务(撤消更改)</code>
原子性
事務的原子性意味著要麼所有操作都成功,要麼所有操作都不成功。如果在交易過程中發生錯誤,則 ROLLBACK 語句將撤銷所有已執行的操作,並恢復資料庫到交易開始時的狀態。
持久性
COMMIT 語句使交易中的變更永久化。一旦 COMMIT 語句執行,這些變更將持久存在資料庫中,即使發生故障或應用程式關閉。
隔離性
交易也提供了隔離性,這表示一個交易中的變更對其他交易不可見,直到 COMMIT 語句執行。這有助於防止並發存取導致資料不一致。
範例
以下範例展示了在SQL 中使用BEGIN 和END:
<code class="sql">BEGIN; INSERT INTO customers (name, email) VALUES ('John Doe', 'john.doe@example.com'); UPDATE customers SET email = 'john.doe@new-example.com' WHERE id = 1; COMMIT;</code>
在這個範例中,BEGIN 語句開始一個事務,然後執行兩個動作:插入新客戶和更新現有客戶的電子郵件。 COMMIT 語句提交事務,使變更永久化。如果在插入或更新期間發生錯誤,則 ROLLBACK 語句將回滾這兩個操作。
以上是sql中begin end用法的詳細內容。更多資訊請關注PHP中文網其他相關文章!