前几天写了一篇MariaDB10.2支持分析函数,大家印象中MySQL不支持with as ,check约束,那么MariaDB10.2也同样给你惊喜

1.with as

MariaDB [test11]> with a as ( select * from t1 where channerId ='支付宝' )  select * from a;

+----+--------+------------+-----------+--------+

| id | userId | orderId    | channerId | amount |

+----+--------+------------+-----------+--------+

|  1 | 张3    | 2016060101 | 支付宝    |    100 |

|  2 | 李4    | 2016060102 | 支付宝    |     98 |

|  7 | 张3    | 2016060107 | 支付宝    |    200 |

| 10 | 李4    | 2016060110 | 支付宝    |    300 |

+----+--------+------------+-----------+--------+

4 rows in set (0.01 sec)

MariaDB [test11]> explain with a as ( select * from t1 where channerId ='支付宝' )  select * from a;

+------+-------------+-------+------+---------------+---------------+---------+-------+------+-----------------------+

| id   | select_type | table | type | possible_keys | key           | key_len | ref   | rows | Extra                 |

+------+-------------+-------+------+---------------+---------------+---------+-------+------+-----------------------+

|    1 | SIMPLE      | t1    | ref  | idx_channerId | idx_channerId | 182     | const |    4 | Using index condition |

+------+-------------+-------+------+---------------+---------------+---------+-------+------+-----------------------+

1 row in set (0.00 sec)

MariaDB [test11]>

#check 约束

MariaDB [test11]> CREATE TABLE `t_user` (

-> `id`  int NOT NULL AUTO_INCREMENT ,

-> `name`  varchar(255) NOT NULL DEFAULT '' ,

-> `age`  tinyint UNSIGNED NULL check(age > 0 and age < 120)  ,

-> `gender`  tinyint NULL COMMENT '(0男,1女,2未知)' ,

-> `address`  varchar(255) NULL ,

-> PRIMARY KEY (`id`)

-> )

-> ;

Query OK, 0 rows affected (0.03 sec)

MariaDB [test11]> insert into t_user  ( name,age,gender,address) values ( 'zhangsan',1,1,'afdadfa');

Query OK, 1 row affected (0.03 sec)

MariaDB [test11]> insert into t_user  ( name,age,gender,address) values ( 'lisi',121,0,'afdadfa');

ERROR 4022 (23000): CONSTRAINT `age` failed for `test11`.`t_user`

MariaDB [test11]> insert into t_user  ( name,age,gender,address) values ( 'lisi',0,0,'afdadfa');

ERROR 4022 (23000): CONSTRAINT `age` failed for `test11`.`t_user`

MariaDB [test11]> update t_user set age =122 where id =1;
ERROR 4022 (23000): CONSTRAINT `age` failed for `test11`.`t_user`
MariaDB [test11]>

###

这个很值得期待的版本,希望官方版本也能及时跟进,纵观MySQL5.6,5.7的很多特性都是借鉴MariaDB的特性

MariaDB10.2.X-新特性2-支持check约束and with as的更多相关文章

  1. Linux环境下Eclipse对C++新特性的支持设置

    Linux环境下Eclipse对C++新特性的支持设置     今天写一个简单的关于C11中的array容器的测试程序如下, #include <iostream> #include &l ...

  2. [置顶] Kubernetes1.7新特性:支持绕过docker,直接通过containerd管理容器

    背景情况 从Docker1.11版本开始,Docker依赖于containerd和runC来管理容器,containerd是控制runC的后台程序,runC是Docker公司按照OCI标准规范编写的一 ...

  3. kubernetes1.4新特性:支持两种新的卷插件

    背景介绍 在Kubernetes中卷的作用在于提供给POD持久化存储,这些持久化存储可以挂载到POD中的容器上,进而给容器提供持久化存储. 从图中可以看到结构体PodSpec有个属性是Volumes, ...

  4. Entity Framework 6 Code First新特性:支持存储过程

    Entity Framework 6提供支持存储过程的新特性,本文具体演示Entity Framework 6 Code First的存储过程操作. Code First的插入/修改/删除存储过程 默 ...

  5. Mozilla新特性只支持https网站,再次推动SSL证书普及

    Mozilla的官方博客2015.4.30正式宣布了淘汰HTTP的方案. 其中包括:设定一个日期,所有的新特性将只提供给HTTPS网站:HTTP网站将逐步被禁止访问浏览器功能,尤其是那些与用户安全和隐 ...

  6. Mozilla新特性只支持https网站

    Mozilla的官方博客2015.4.30正式宣布了淘汰HTTP的方案. 其中包括:设定一个日期,所有的新特性将只提供给HTTPS网站:HTTP网站将逐步被禁止访问浏览器功能,尤其是那些与用户安全和隐 ...

  7. kubernetes1.4新特性:支持sysctl命令

    背景介绍 sysctl是一个允许改变正在运行中的Linux系统内核参数的接口.可以通过sysctl修改Linux系统内核中的TCP/IP 堆栈和虚拟内存系统的高级选项,而且不需要重新启动Linux系统 ...

  8. kubernetes1.4新特性:支持Docker新特性

    (一)背景资料 在Kubernetes1.2中这个第三方组件就是go-dockerclient,这是一个GO语言写的docker客户端,支持Dockerremote API,这个项目在https:// ...

  9. Kubernetes1.3新特性:支持GPU

    (一)  背景资料 GPU就是图形处理器,是Graphics Processing Unit的缩写.电脑显示器上显示的图像,在显示在显示器上之前,要经过一些列处理,这个过程有个专有的名词叫" ...

随机推荐

  1. C# 反射学习总结

    C#中的反射可以使得程序集和类型(类.结构.委托.接口和枚举)以及类型中的成员(方法.字段.属性.事件.参数.构造函数等)都成为变量在编程中动态调用.

  2. c# 空接合(??)运算符的运用

    相信很多人都看到??运算符,但是不一定每个人都知道它是用来做什么的,之前我也看到过很多次,但是因为一直没有去用过,所以也没有了解他的作用,今天又看到了,所以查了的MSDN,原来??运算符叫做空接合运算 ...

  3. WCF-Configuration

    Host-Configuration <?xml version="1.0"?> <configuration> <configSections> ...

  4. linux驱动路径

    1. 按键驱动 \drivers\input\keyboard\utu2440_buttons.c 2. LED驱动 \drivers\char\utu2440-led.c 3. DM9000网卡驱动 ...

  5. Unity 优化

    1. 尽量避免每帧处理比如: function Update() { DoSomeThing(); } 可改为每5帧处理一次: function Update() { == ) { DoSomeThi ...

  6. Django 学习笔记之六 建立一个简单的博客应用程序

    最近在学习django时建立了一个简单的博客应用程序,现在把简单的步骤说一下.本人的用的版本是python 2.7.3和django 1.10.3,Windows10系统 1.首先通过命令建立项目和a ...

  7. AngularJs遇到的小坑与技巧

    1. templateURL和路由之类的要在web server下运行. 2. 使用模板replace设为true,模板里也要有相应的标签,否则不出现任何数据. 3. 1.2版本之后,ngRoute模 ...

  8. angular入门系列教程3

    主题: 本篇主要目的就是继续完善home页,增加tab导航的三个页index index1 index2 效果图: 细节: 初始化的JS就是咱们的home.js,仔细来看. angular的route ...

  9. Hibernate各种主键生成策略与配置详解【附1--<generator class="foreign">】

    1.assigned 主键由外部程序负责生成,在 save() 之前必须指定一个.Hibernate不负责维护主键生成.与Hibernate和底层数据库都无关,可以跨数据库.在存储对象前,必须要使用主 ...

  10. django在nginx uwsgi和tornado异步方案在项目中的体验

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://rfyiamcool.blog.51cto.com/1030776/1397495 ...