我现在想对money一列做数据范围的处理。譬如update table_x set money = money + 100 where a=0;update table_x set money = money - 100 where a=0;我想将money限制在0~10000只内如果做呢?
只能写触发器是不是??有没有其他好的方法?

解决方案 »

  1.   


    -- 但是mysql的check约束,有其语法,但是不会起作用,所以只能用触发器!
      

  2.   

    http://blog.csdn.net/ACMAIN_CHM/archive/2009/07/25/4380183.aspx
     MySQL 中如何在触发器里中断记录的插入或更新?
      

  3.   


    写错了,应该是如何做呢?。。
    另外我使用navicat和MySQL Administrator 似乎都不能在GUI中创建触发器?
    难道我只能通过命令行去创建吗?
    MySQL命令行怎么连接非本地数据库???
      

  4.   

    别人是可以的。
    显然不是
    看手册中MYSQL的命令工具选项参数的说明。特别看一下 -h
      

  5.   


    我的意思是使用类似GUI来向导式创建,譬如MySQL Administrator 有创建存储过程的按钮。
    别人如果能创建拜托别人公布一下创建的方法。navicat我找了一下确实有一个按钮可以,MySQL Administrator 没找到
    另外如果我想移库的话,譬如把数据库X部署到另外一台机器上。
    MySQL Administrator 如何方便的把触发器也一起带走??——他有一个backup,但是我看了一下,能带走表包括数据包括存储函数。但是没有触发器。我在一台机器上创建了一个触发器,如果方便的复制到另外的机器上?
    我要的是方便。c/p最好。
      

  6.   

    update table_x set money = if( money+100>10000, 10000, money+100 ) where a=0;update table_x set money = if( money-100<0, 0, money-100 ) where a=0;