MySQL int类型的字段怎么限制范围(年龄限制在0--120之间)

wangning_688 2011-03-30 12:49:27
MySQL int类型的字段怎么限制范围(年龄限制在0--120之间)
...全文
5449 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2011-03-30
  • 打赏
  • 举报
回复
MYSQL中无法直接限制。
你可以在触发器的BEFORE INSERT中检查。
luoyoumou 2011-03-30
  • 打赏
  • 举报
回复 4
-- mysql 的check约束只是一种装饰!只能用1楼的做法:触发器实现!
-- 示例如下:
mysql> create table user(
-> uname varchar(30),
-> sex char(5) CHECK (sex in( '男','女')),
-> age int CHECK (age <= 120)
-> );
Query OK, 0 rows affected (0.06 sec)

mysql> insert into user(uname,sex,age) values('luoyoumou','男',33);
Query OK, 1 row affected (0.03 sec)

mysql> insert into user(uname,sex,age) values('luoyoumou','男',133);
Query OK, 1 row affected (0.03 sec)

mysql> select * from user;
+-----------+------+------+
| uname | sex | age |
+-----------+------+------+
| luoyoumou | 男 | 33 |
| luoyoumou | 男 | 133 |
+-----------+------+------+
2 rows in set (0.01 sec)

mysql> show create table user;
+-------+--------------------------------------------------------------------------------------
| Table | Create Table
+-------+--------------------------------------------------------------------------------------
| user | CREATE TABLE `user` (
`uname` varchar(30) default NULL,
`sex` char(5) default NULL,
`age` int(11) default NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+--------------------------------------------------------------------------------------
1 row in set (0.00 sec)

rucypli 2011-03-30
  • 打赏
  • 举报
回复
用check 约束

56,801

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧