MySQL 如何處理約束?
讓我們瞭解一下 MySQL 如何處理約束:
MySQL 幫助我們處理事務表(允許回滾)和非事務表(不允許回滾)。這就是為什麼與其他資料庫管理系統相比,MySQL 中處理約束的方式有所不同的原因。在非事務資料庫中,如果插入或更新多行時發生錯誤,則無法回滾。這種情況必須以正確的方式處理。
在解析需要執行的語句時,MySQL 伺服器會針對其檢測到的錯誤查詢生成錯誤。檢測到錯誤後,它會嘗試在執行語句時從錯誤中恢復。目前並非所有語句都這樣做。
發生錯誤時,MySQL 可以停止語句的執行,也可以從中恢復並繼續執行。預設情況下,伺服器會從中恢復並繼續執行。
外部索引鍵允許跨表交叉引用資料,外部索引鍵約束有助於確保這些分散的資料保持一致。
外部索引鍵引用
MySQL 在 CREATE TABLE 和 ALTER TABLE 語句中支援 ON UPDATE 和 ON DELETE 外部索引鍵引用。
引用操作
可用的引用操作包括:RESTRICT、CASCADE、SET NULL 和 NO ACTION。
NO ACTION 是預設的引用操作。
ENUM
ENUM 值必須是列定義中列出的值,或者其內部數值等效項。該值不能是錯誤值(0 或空字串)。對於定義為 ENUM('a','b','c') 的列,除了'a'、'b'或'c'以外的值,例如“”、“d”或“ax”,都被認為是無效的,並將被拒絕。
廣告