vineld Posted July 26, 2009 Share Posted July 26, 2009 When I have a MySQL field that is a result of two or more others (it is sometimes a good idea to store such value as well even if it is redundant data) I usually do the math in the same sql sentence like this: UPDATE tbl SET f1 = f1 + 1, f2 = f2 + 7, f3 = f2 * f1/3 WHERE blabla This has seemed to work so far but I can't help but wonder if this code is secure or is there a risk of a faulty f3 value? Link to comment https://forums.phpfreaks.com/topic/167449-post-insert-calculations-in-self-a-bad-idea/ Share on other sites More sharing options...
abazoskib Posted July 26, 2009 Share Posted July 26, 2009 i can't imagine a faulty value occurring. maybe if you gave a scenario of what you would be doing would help Link to comment https://forums.phpfreaks.com/topic/167449-post-insert-calculations-in-self-a-bad-idea/#findComment-883506 Share on other sites More sharing options...
vineld Posted July 27, 2009 Author Share Posted July 27, 2009 What I am thinking is this: 1. The operations f1 + 1, f2 = f2 + 7 will have to be done first. 2. f3 will then have to be calculated using the two first fields. The question is really this one: Is this particular row locked while doing all three operations and will the last one always be done last in a query? Link to comment https://forums.phpfreaks.com/topic/167449-post-insert-calculations-in-self-a-bad-idea/#findComment-883926 Share on other sites More sharing options...
fenway Posted August 3, 2009 Share Posted August 3, 2009 Well, mysql goes from left-to-right, so you should be ok. Link to comment https://forums.phpfreaks.com/topic/167449-post-insert-calculations-in-self-a-bad-idea/#findComment-889931 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.