update值范围限定的问题。

madmanahong 2011-04-06 06:05:36
我现在想对money一列做数据范围的处理。譬如

update table_x set money = money + 100 where a=0;

update table_x set money = money - 100 where a=0;

我想将money限制在0~10000只内

如果做呢?
只能写触发器是不是??有没有其他好的方法?


...全文
184 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
op_____ 2011-04-11
  • 打赏
  • 举报
回复
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;
ACMAIN_CHM 2011-04-07
  • 打赏
  • 举报
回复
[Quote]另外我使用navicat和MySQL Administrator 似乎都不能在GUI中创建触发器?[/Quote]别人是可以的。
[Quote]难道我只能通过命令行去创建吗?[/Quote]显然不是
[Quote]MySQL命令行怎么连接非本地数据库???[/Quote]看手册中MYSQL的命令工具选项参数的说明。特别看一下 -h
madmanahong 2011-04-07
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 acmain_chm 的回复:]
引用如果做呢?
什么叫如果做?



引用只能写触发器是不是??有没有其他好的方法?显然不是只能写触发器,但不如触发器方便。
[/Quote]

写错了,应该是如何做呢?。。。。。


另外我使用navicat和MySQL Administrator 似乎都不能在GUI中创建触发器?
难道我只能通过命令行去创建吗?
MySQL命令行怎么连接非本地数据库???


madmanahong 2011-04-07
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 acmain_chm 的回复:]
引用另外我使用navicat和MySQL Administrator 似乎都不能在GUI中创建触发器?别人是可以的。
[/Quote]

我的意思是使用类似GUI来向导式创建,譬如MySQL Administrator 有创建存储过程的按钮。
别人如果能创建拜托别人公布一下创建的方法。

navicat我找了一下确实有一个按钮可以,MySQL Administrator 没找到。。。


另外如果我想移库的话,譬如把数据库X部署到另外一台机器上。
MySQL Administrator 如何方便的把触发器也一起带走??——他有一个backup,但是我看了一下,能带走表包括数据包括存储函数。但是没有触发器。。。。

我在一台机器上创建了一个触发器,如果方便的复制到另外的机器上?
我要的是方便。c/p最好。






ACMAIN_CHM 2011-04-06
  • 打赏
  • 举报
回复
http://blog.csdn.net/ACMAIN_CHM/archive/2009/07/25/4380183.aspx
MySQL 中如何在触发器里中断记录的插入或更新?
ACMAIN_CHM 2011-04-06
  • 打赏
  • 举报
回复
[Quote]如果做呢?[/Quote]
什么叫如果做?


[Quote]只能写触发器是不是??有没有其他好的方法?[/Quote]显然不是只能写触发器,但不如触发器方便。
luoyoumou 2011-04-06
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 luoyoumou 的回复:]

创建check约束!
[/Quote]

-- 但是mysql的check约束,有其语法,但是不会起作用,所以只能用触发器!
luoyoumou 2011-04-06
  • 打赏
  • 举报
回复
创建check约束!
iihero_ 2011-04-06
  • 打赏
  • 举报
回复
触发器对效率的影响应该可以忽略。
madmanahong 2011-04-06
  • 打赏
  • 举报
回复
触发器会不会影响效率?

56,678

社区成员

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

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