我已经搜索了一段时间,但找不到太多。
是否可以在 MySQL 的 InnoDB 表上手动锁定单个行?
基本上我们有一个表,其中一些记录已被处理,不应再被编辑。它们需要保持当前的状态,但在读取数据方面仍然易于访问。
我们已经有一个“锁定”的列,它是 0 或 1,但是不知何故,它在不应该编辑的时候被编辑了。我们不想依赖代码的良好表现,而是想在 MySQL 级别对其进行硬锁定,因此这些不能被更改,即使我们的 PHP 代码试图在某个地方进行更改。
这可能吗?
最佳答案
没有。
要正确执行此操作,请使用应用程序分区,以便您的应用程序将事件数据存储在一个表中,将历史数据存储在另一个表中,并使用权限指定您的应用程序可以读取一个表并在另一个表上读/写。
或者,添加一个访问层,以便您通过 View 读取并通过存储过程写入,并让 SP 控制是否可以根据字段值写入行。
无论哪种方式,如果不在某处编写一些代码,您就无法使用 MySQL native 执行此操作
关于php - 如何对 MySQL InnoDB 表中的一行进行长期锁定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20638528/