怎么设定某个列的取值范围。例如 0 <AGE<120
check约束不好用

解决方案 »

  1.   


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

  2.   


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

  3.   

    Check 的 范围小的话, 可以使用  enum 来替代处理。如果范围大的话, 通过触发器来处理吧。
      

  4.   

    你的这个 0 <AGE<120
    用触发器吧
      

  5.   

    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...
      

  6.   

    mysql是不支持check约束的,触发器实现吧!