佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 2193|回复: 5

MySQL自动计算数值的field

[复制链接]
发表于 1-12-2009 03:12 PM | 显示全部楼层 |阅读模式
想请教一下一个很菜鸟的问题:

我的数据库里有以下的fields:user_income_1, user_income_2 以及 user_total_income. user_total_income 的数值永远是 user_income_1 + user_income_2.

想请问一下,是否有法子让user_total_income的数值自动的计算出来,嗯,也就是说当用户输入任何一个income的数值,total_income会自动计算出两者的总和,并储存起来。也就是有点类似Excel里面的SUM(Cell1:Cell2)那样子,只是我想要的是让MySQL自动计算出这个数值并存入在user_total_income里面,这个可以做得到吗?
回复

使用道具 举报


ADVERTISEMENT

发表于 1-12-2009 03:25 PM | 显示全部楼层
需要用到store procedure & trigger
回复

使用道具 举报

 楼主| 发表于 1-12-2009 03:33 PM | 显示全部楼层
谢谢你的回答。看来还是得用StoredProc。。。只好继续读MySQL的Documentation了。
回复

使用道具 举报

发表于 1-12-2009 05:14 PM | 显示全部楼层
这样?
UPDATE table SET user_total_income = user_income_1 + user_income_2
或者...

SELECT user_income_1,user_income_2, user_income_1 + user_income_2 as user_total_income FROM table


这样就不需要 user_total_income 这个field...而且每一次拿出来的结果一定是user_income_1 + user_income_2

[ 本帖最后由 megablue 于 1-12-2009 05:21 PM 编辑 ]
回复

使用道具 举报

 楼主| 发表于 1-12-2009 05:29 PM | 显示全部楼层
我并不是直接使用MySQL Console的,而是使用C++ Builder + MyDAC。而那个user_income的部分是relational sub-table,Update 的部分并不是由我自行控制,而是由Master Table 做主(整个Application里面有大约20个Tables,关系错综复杂,如果每一个Table都附上一个DBNavigator的话,界面会惨不忍睹。。。)。我记得以前用BDE的时候有一个Aggrevated Field(可能会拼错字,见谅),可以设定一个expression来自动计算数值的,可是在MySQL里面没有相对应的Field Type,所以困惑不已。

不过现在问题已经解决了,用回老方法,在Table Event里面直接在BeforeUpdate Event里面做运算。
回复

使用道具 举报

发表于 14-12-2009 04:58 PM | 显示全部楼层
應該可以用Trigger來做吧,沒記錯的話
回复

使用道具 举报

Follow Us
您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 25-4-2024 10:23 AM , Processed in 0.061818 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表