比如,一张账单表里(id,总额,消费总额);
我要实现的功能是"消费总额"小于等于"总额";在插入,更新时检测;
不能另外添加字段,也不在数据库外进行判断

解决方案 »

  1.   

    MYSQL中不支持CHECK检查。
    只能在触发器中实现。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...
      

  2.   

    这样的话,可不可能引起其他不可预测的错误?
    有没有更好的方法?mysql对单个字段不是可以检查,那么多个字段为什么不可以呢
      

  3.   

    程序里面判断行不行? 
    for one record:
         if 消费总额<=总额:
             insert
         else:
             pass
      

  4.   

    在插入前检测,用TRIGGER OR 语言代码
      

  5.   


    TRIGGER语言怎么写呢?TRIGGER在判断之后要进行数据库操作,那这里的操作是干嘛呢,不能插入,删除,更新,也不能返回错误值?
      

  6.   

    TRIGGER里可以吗?这样的TRIGGER怎么写呢
      

  7.   

    IF 条件成立 THEN
    执行1条错误的SQL语句
    ELSE
    执行插入
    END IF