【数据库】CHECK是什么

昨天调试代码时,发现数据插入失败的问题。
该表有一个字段限制,必须为正数。
结果用户输入了负数,报错。
这让我想起了MySQL的CHECK约束。
例如,如果您有一个订单表,则金额不得为负数。
只需将 CHECK(金额 > 0)添加到该字段即可。
这比每次都在应用层检查要省事很多。
不过,我之前尝试过复杂的条件,例如5 .7 版本中的is_discounted,发现并不是所有版本都支持。
等等,还有一件事。
我看过文档表明 CHECK 约束会影响 InnoDB 引擎的性能,特别是在条件复杂的情况下。
但具体金额并未得到证实。
例如,当插入数百万数据时,延迟会增加多少毫秒?我们需要进行测试才能知道这一点。

check约束的介绍

CHECK 约束用于限制列值。
例如,作者面板需要六位数的邮政编码。

这里有一个陷阱:忽略 CHECK 约束可能会导致数据错误。

实用提醒:请确保CHECK约束逻辑正确,避免数据不一致。