保护数据库数据

时间:2018-02-06 11:32:29

标签: mysql database

目前我正在使用MySQL数据库。让我们说我有一些关于上个月的数据。当数据经过验证后,我想"锁定"它,所以当我的老板问我数据是否正确时,我可以回答是,因为我确定数据在同一时间内无法改变。

有没有办法锁定"数据行或单元格被修改?我怎么能这样做?

1 个答案:

答案 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 ;
相关问题