欢迎来到IDC91站长网!
解决服务器各种技术问题,加微信uecomzsr

MySQL

当前位置: IDC91 > 数据库 > MySQL

MySQL 8.0 新特性之检查约束的实现

时间:2022-05-30 13:58:34|栏目:MySQL|点击:

大家好,我是只谈技术不剪发的 Tony 老师。这次我们来介绍一个 MySQL 8.0 增加的新功能:检查约束(CHECK )。

SQL 中的检查约束属于完整性约束的一种,可以用于约束表中的某个字段或者一些字段必须满足某个条件。例如用户名必须大写、余额不能小于零等。

我们常见的数据库都实现了检查约束,例如 Oracle、SQL Server、PostgreSQL 以及 SQLite;然而 MySQL 一直以来没有真正实现该功能,直到最新的 MySQL 8.0.16。

MySQL 8.0.15 之前

在 MySQL 8.0.15 以及之前的版本中,虽然 CREATE TABLE 语句允许CHECK (expr)形式的检查约束语法,但实际上解析之后会忽略该子句。例如

mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.15  |
+-----------+
1 row in set (0.00 sec)

mysql> CREATE TABLE t1
  -> (
  ->  c1 INT CHECK (c1 > 10),
  ->  c2 INT ,
  ->  c3 INT CHECK (c3 < 100),
  ->  CONSTRAINT c2_positive CHECK (c2 > 0),
  ->  CHECK (c1 > c3)
  -> );
Query OK, 0 rows affected (0.33 sec)

mysql> show create table t1G
*************************** 1. row ***************************
    Table: t1
Create Table: CREATE TABLE `t1` (
 `c1` int(11) DEFAULT NULL,
 `c2` int(11) DEFAULT NULL,
 `c3` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)

上一篇:Mysql根据某层部门ID查询所有下级多层子部门的示例

栏    目:MySQL

下一篇:查看修改MySQL表结构命令

本文标题:MySQL 8.0 新特性之检查约束的实现

本文地址:https://idc91.com/shujuku/4059.html

广告投放 | 联系我们 | 免责申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

Copyright © 2023 IDC91.COM 版权所有晋ICP备17006296号