我使用的是mysql 5.5.22。
有时我需要从某个地方获取一些数据,而这个地方是一个系统表。
例如。:
我有一个问题(我的同事写的):

UPDATE _x_eia_marcatura AS X, A_EVENTS AS E
SET X.kind = E.kind, X.ref_id = E.ref_id
WHERE E.DELIVERY_ID=49 AND E.kind='c' AND E.ref_id = 69
AND X.MAILQ_ID = E.MAILQ_ID;

如果你不小心写了E.kind=X.kind,你就在更新系统表。有没有办法告诉mysql“如果我正在更新表E,那么就不要做任何事情”?
我知道这个别名命名约定很糟糕,但它让我觉得也许有办法做我建议的事情。

最佳答案

如果是全局“从不插入此表”或触发器,则可以使用权限。
一般来说,代码通常被认为是“可信的”,所以无论它要求什么都被认为是可以接受的。如果您真的需要这样做,您应该调查存储过程,并且只允许通过这些过程更改数据库。

关于mysql - 在更新期间仅锁定查询表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10601227/

10-13 02:08