Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sql为所有行指定相同的列值,并经常更新_Sql_Triggers_Insert Update_Calculated Columns - Fatal编程技术网

sql为所有行指定相同的列值,并经常更新

sql为所有行指定相同的列值,并经常更新,sql,triggers,insert-update,calculated-columns,Sql,Triggers,Insert Update,Calculated Columns,我想要达到的目标: 我有一个表格,显示每个ID的ID和积分。 我想对每个ID进行评级,rateID=CreditID/sumccreditid总和超过所有ID 我将非常频繁地更新该表,并希望通过创建另一列并将该总和存储在表say sigmaID中来保持sumCreditID的方便性,该表对所有行都应该具有完全相同的值。 每当我为一个ID更改信用,比如add100,我就可以简单地对这个列value add 100执行相同的操作 我必须为所有行更新sigmaID吗?它会有效率吗? 我想定期检查sig

我想要达到的目标: 我有一个表格,显示每个ID的ID和积分。 我想对每个ID进行评级,rateID=CreditID/sumccreditid总和超过所有ID 我将非常频繁地更新该表,并希望通过创建另一列并将该总和存储在表say sigmaID中来保持sumCreditID的方便性,该表对所有行都应该具有完全相同的值。 每当我为一个ID更改信用,比如add100,我就可以简单地对这个列value add 100执行相同的操作

我必须为所有行更新sigmaID吗?它会有效率吗? 我想定期检查sigmaID是否确实是sumCreditID的一致性,我是否做得过火了?它会低效吗? 有没有其他方法可以解决我担心的效率问题?
请提供纯SQL查询,因为我需要将所有这些都放在一个更新触发器中,该触发器将使用其他ID参数计算此评级和其他公式的负载。我可能可以访问脚本语言PHP/python,但我不确定。这就是纯SQL请求。

不幸的是,我的英语很差

正如我所意识到的,您想拥有过去和现在关于列值的所有信息吗

你想把它记录下来吗?若它是这样的话,你们就可以通过触发器创建日志表并记录你们想要的一切

致以最良好的祝愿


tato mumladze

不,我想添加列Credit的所有值,并在任何行的Credit值更改时更新此值。好的,这样做:“代码”在[yourtable]上更新[yourcollumn]后为每行创建或替换触发器[yourtrigger],开始更新[yourtable]设置[yourcollumn]=[yourvalue]其中[yourcollumn]=[你想要什么];结束[你的触发器];我的经验不允许我有权威地说话,但似乎你可以通过使用标量来计算和,并使用持久化来分配结果来实现你的目标。@andriy-m:感谢这些链接,计算列的内容看起来很有希望,它是仅限于MSSQL还是我可以在mysql/其他sql中使用它?我说不出是什么原因该功能仅限于SQL Server,但揭示出,至少有两种特定的服务器产品MySQL和PostgreSQL不支持计算列,或者说,它们当时不支持计算列。@andriy-m谢谢,我想我会重新制定策略,或者在stackexchange上询问db管理员。