MySQL 如何处理约束
让我们了解一下MySQL如何处理约束-
MySQL帮助我们处理事务表(允许回滚)和非事务表(不允许回滚)。这就是为什么MySQL在处理约束时与其他DBMS不同的原因。在非事务数据库中,如果插入或更新多行时出现错误,无法回滚。必须正确地处理这种情况。
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’被视为无效并被拒绝。