如何防止 MYSQL table 进行任何独立于会话的更新?

How to prevent MYSQL table for any updating independent of session?

这是 How can I lock an InnoDB table to prevent updates while that table is being copied? 的跟进。 我想锁定 table 并阻止对其进行任何更新,直到 DB-admin 专门删除锁定。

我想做什么?

我有一个 table 存储从 -180 到 +180 度的所有可能值。我将它们存储在名为 DEGREE_VALUES 的 table 中。所以,现在 table 中有 361 行。我不希望这个 table 被更新。我将只读取此 table 中的值。我读 MySQL Reference for LOCK tables 但它说的是客户端会话。我正在寻找的是独立于客户端会话的。

这不是通过某种锁来完成的。通常人们宁愿撤销使用 table.

的用户的更新、删除和插入权限
  • 阅读 manual entry
  • 中有关 revoke 语法的更多信息
  • 再往下 manual entry 你得到一个 table 具有不同的权限
BEGIN;
SELECT * FROM tbl FOR UPDATE;
copy the data
COMMIT;

SELECT...FOR UPDATE 阻止任何其他客户端更改 table,直到 COMMIT