我有一个数据库表,它会不时被进程更新。但是,在某些情况下,我想强制覆盖特定行。有没有一种方法可以不用编写大量代码来处理覆盖等,只需锁定数据库本身中的行或字段?
例如,我的桌子看起来像
STUDENT | TEST_SCORE_AVG | HOMEWORK_AVG
John | 92.3 | 88.8
Lisa | 77.4 | 99.8
Terry | 88.0 | 64.5
每次新的测试或家庭作业,学生的平均成绩都会发生变化。但是,假设老师是约翰的母亲,无论如何,他的家庭作业平均得分为 100.0。有没有办法锁定它,以便任何试图改变值的程序都会被反弹回来?我正在使用 MySQL 工作台访问我的 MySQL 数据库 (InnoDB)
更新:
我还可以使用锁定整行的功能来实现 - 这意味着既不能TEST_SCORE_AVG
也不HOMEWORK_AVG
能改变。无论连接是否丢失,我都需要该解决方案能够长期存在。我想锁定该行,直到我解锁它为止