MYsql 怎么约束列的取值范围

lmpeng1990 2012-06-30 11:19:54
怎么设定某个列的取值范围。例如 0 <AGE<120
check约束不好用
...全文
4072 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rotel-刘志东 2012-07-01
  • 打赏
  • 举报
回复
mysql是不支持check约束的,触发器实现吧!
SQL777 2012-06-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
引用 3 楼 的回复:
SQL code


--为何check约束不好用?那用触发器,呵呵
--写死在程序中,岂不是客户要求改动要改程序?
alter table t add constraint [ck_t_age] check (AGE>0 and AGE<10000)

亲,check约束在mysql用不了。。。
[/Quote]
那就搞触发器吧
lmpeng1990 2012-06-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
SQL code


--为何check约束不好用?那用触发器,呵呵
--写死在程序中,岂不是客户要求改动要改程序?
alter table t add constraint [ck_t_age] check (AGE>0 and AGE<10000)
[/Quote]
亲,check约束在mysql用不了。。。
人生无悔 2012-06-30
  • 打赏
  • 举报
回复

--为何check约束不好用?那用触发器,呵呵
--写死在程序中,岂不是客户要求改动要改程序?
alter table t add constraint [ck_t_age] check (AGE>0 and AGE<120)
人生无悔 2012-06-30
  • 打赏
  • 举报
回复

--为何check约束不好用?那用触发器,呵呵
--写死在程序中,岂不是客户要求改动要改程序?
alter table t add constraint [ck_t_age] check (AGE>0 and AGE<10000)
lmpeng1990 2012-06-30
  • 打赏
  • 举报
回复
这方法貌似不错。。
不过就不能再里面设置了?
鐵蛋 2012-06-30
  • 打赏
  • 举报
回复
为什么不在前台控制?这样灵活性更高,数据库设计最好是低耦合,少约束
ACMAIN_CHM 2012-06-30
  • 打赏
  • 举报
回复
http://blog.csdn.net/acmain_chm/article/details/4380183

MySQL 中如何在触发器里中断记录的插入或更新?
MySQL 不象其它有些数据库可以在触发器中抛出异常来中断当然触发器的执行以阻止相应的SQL语句的执行。在MySQL的目录版本中还无法直接抛出异常。这样我们如何实现呢? 下面是一种实现的方法。思路就是想办法在触发器中利用一个出错的语句来中断代码的执行。 mysql> create table t_control(id int primary key);Query OK, 0 row...
--小F-- 2012-06-30
  • 打赏
  • 举报
回复
你的这个 0 <AGE<120
用触发器吧
--小F-- 2012-06-30
  • 打赏
  • 举报
回复
Check 的 范围小的话, 可以使用 enum 来替代处理。

如果范围大的话, 通过触发器来处理吧。

56,677

社区成员

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

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