目前我正在使用MySQL数据库。让我们说我有一些关于上个月的数据。当数据经过验证后,我想"锁定"它,所以当我的老板问我数据是否正确时,我可以回答是,因为我确定数据在同一时间内无法改变。
有没有办法锁定"数据行或单元格被修改?我怎么能这样做?
答案 0 :(得分:0)
mysql innoDB锁可能有效,但我认为(与事务相关)不是永久性的。检查一下自己here
我建议你在表格中添加一个额外的列,例如命名。 validated
,默认值为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 ;