MySQL 如何处理约束?
mysqlmysqli database
让我们了解 MySQL 如何处理约束 −
MySQL 帮助我们处理事务表(允许回滚)和非事务表(不允许回滚)。这就是为什么 MySQL 处理约束的方式与其他 DBMS 不同。在非事务数据库中,如果在插入或更新多行时发生错误,则无法回滚。这种情况必须以正确的方式处理。
在解析需要执行的语句时,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&39; 或 'ax&39;)将被视为无效并被拒绝。