MySQL是一種支持事務(wù)的關(guān)系型數(shù)據(jù)庫(kù),它的事務(wù)有四個(gè)特性,包括原子性、一致性、隔離性和持久性。
原子性是指一個(gè)事務(wù)中的所有操作要么全部完成,要么全部不完成,不能只完成其中一部分。例如,如果一個(gè)事務(wù)中包含插入兩條數(shù)據(jù)的操作,那么這兩條數(shù)據(jù)要么都插入到數(shù)據(jù)庫(kù)中,要么都沒(méi)有插入。
一致性是指只要事務(wù)結(jié)束,數(shù)據(jù)庫(kù)必須保持一致的狀態(tài)。也就是說(shuō),如果一個(gè)事務(wù)執(zhí)行了修改操作,那么修改后的數(shù)據(jù)必須符合數(shù)據(jù)庫(kù)中定義的所有條件。如果不符合,則所有操作都必須回滾到事務(wù)開(kāi)始前的狀態(tài)。
隔離性是指一個(gè)事務(wù)的執(zhí)行必須與其他事務(wù)的執(zhí)行相隔離,互不干擾。即使多個(gè)事務(wù)在同一個(gè)時(shí)間內(nèi)執(zhí)行,每個(gè)事務(wù)都必須以與其他事務(wù)隔離的方式執(zhí)行。這可以保證每個(gè)事務(wù)都不會(huì)受到其他事務(wù)的影響。
持久性是指當(dāng)一個(gè)事務(wù)完成并提交后,其對(duì)數(shù)據(jù)庫(kù)的修改必須是永久性的。即使在發(fā)生硬件故障的情況下,數(shù)據(jù)庫(kù)也可以通過(guò)日志文件來(lái)進(jìn)行恢復(fù),保證數(shù)據(jù)的持久性。
/* MySQL中開(kāi)啟事務(wù)的語(yǔ)法 */
START TRANSACTION;
/* MySQL中提交事務(wù)的語(yǔ)法 */
COMMIT;
/* MySQL中回滾事務(wù)的語(yǔ)法 */
ROLLBACK;