目前我正在使用 MySQL 数据库。假设我有一些关于上个月的数据。当数据被验证后我想“锁定”它,所以当我的老板问我数据是否正确时,我可以回答是,因为我确定数据不会同时被更改。
有没有办法“锁定”数据行或单元格不被修改?我怎么能那样做?
最佳答案
Mysql innoDB 锁可能有效,但我认为不是永久性的(与事务相关)。自查here
我建议您在表格中添加一个额外的列,将其命名为 eg. 已验证
,默认值为 0
。然后,当验证每一行时,将 validated
值更改为 1
。如果是这样,您可以添加一个触发器来检查当前表的更新。
delimiter $$
CREATE TRIGGER updateRestrictionOnMyTable
BEFORE UPDATE ON my_table
FOR EACH ROW
BEGIN
IF OLD.validated > 0 THEN
SIGNAL SQLSTATE VALUE '99999'
SET MESSAGE_TEXT = 'You cannot update validated rows';
END IF;
END$$
delimiter ;
关于mysql - 保护数据库数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48642087/