MySQL 是一種流行的開源數據庫系統,它支持在事務中對表進行操作。什么是事務表?事務表是一種具有 ACID 屬性的表。ACID 是指原子性、一致性、隔離性和持久性。這意味著在一個事務中執行的操作是原子性的,要么全部成功要么全部失敗,一致性是指在事務執行前后,數據的狀態必須是一致的,隔離性是指同時執行多個事務時,每個事務都彼此獨立,持久性是指一旦事務提交,對數據的更改將永久保存。
CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, `age` int(11) NOT NULL, `email` varchar(50) NOT NULL, `password` varchar(50) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
在上面的代碼中,我們創建了一個名為 user 的表,它有 id、name、age、email 和 password 五個字段。接下來我們來看一個示例,用事務實現向 user 表中插入兩個用戶記錄。
START TRANSACTION; INSERT INTO user (name, age, email, password) VALUES ('張三', 25, 'zhangsan@example.com', '123456'); INSERT INTO user (name, age, email, password) VALUES ('李四', 28, 'lisi@example.com', '654321'); COMMIT;
在上面的代碼中,我們使用 START TRANSACTION 指令開始一個事務,然后執行兩個 INSERT 操作向 user 表中插入兩個用戶的記錄,最后使用 COMMIT 操作提交事務。如果在插入記錄的過程中出現錯誤,我們可以使用 ROLLBACK 操作取消事務,讓所有更改都被撤銷。
START TRANSACTION; INSERT INTO user (name, age, email, password) VALUES ('張三', 25, 'zhangsan@example.com', '123456'); INSERT INTO user (name, age, email, password) VALUES ('李四', 28, 'lisi@example.com', '321456'); ROLLBACK;
在上面的代碼中,第二個 INSERT 操作有一個錯誤,因為密碼不正確。如果我們執行上面的代碼,那么存儲在 user 表中的所有更改都將被撤銷。
總的來說,MySQL 的事務表可以確保數據的一致性和完整性,確保多個操作在一個事務中原子執行,從而避免了由于錯誤或中斷引起的數據不一致。
上一篇mysql 事務底層
下一篇mysql 事務語法