【MYSQL】check 检查约束(详解)

check约束其实就是一个检查功能,反正就是对输入数据的一个限制,如果不满足限制,那么就无法插入数据。

mysql> create table gender(id int primary key auto_increment,name varchar(20),sex varchar(2),
    -> check(sex='男' or sex='女' or sex='秘密'));
Query OK, 0 rows affected (0.04 sec)

mysql> desc gender;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int         | NO   | PRI | NULL    | auto_increment |
| name  | varchar(20) | YES  |     | NULL    |                |
| sex   | varchar(2)  | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
3 rows in set (0.01 sec)

mysql> insert into gender values(null,'z1','秘密');
Query OK, 1 row affected (0.00 sec)

mysql> insert into gender values(null,'z2','女');
Query OK, 1 row affected (0.00 sec)

mysql> insert into gender values(null,'z3','男');
Query OK, 1 row affected (0.00 sec)

mysql> select * from gender;
+----+------+------+
| id | name | sex  |
+----+------+------+
|  1 | z1   | 秘密 |
|  2 | z2   ||
|  3 | z3   ||
+----+------+------+
3 rows in set (0.00 sec)

mysql> insert into gender values(null,'z3','123');
ERROR 1406 (22001): Data too long for column 'sex' at row 1
mysql> insert into gender values(null,'z3','12');
ERROR 3819 (HY000): Check constraint 'gender_chk_1' is violated.
mysql> select * from gender;
+----+------+------+
| id | name | sex  |
+----+------+------+
|  1 | z1   | 秘密 |
|  2 | z2   ||
|  3 | z3   ||
+----+------+------+
3 rows in set (0.00 sec)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值