2

我正在使用 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那么什么都不做”?

我知道这个别名命名约定很糟糕,但它让我觉得也许有一种方法可以做我建议的事情。

4

1 回答 1

3

如果它是全局“从不插入此表”的事情,或者可能是触发器,您可以使用权限。

不过一般来说,没有。代码通常被认为是“可信的”,因此无论它要求什么都被认为是可以接受的。如果你真的需要这个,你应该调查存储过程,并且只允许通过这些更改数据库。

于 2012-05-15T13:25:34.040 回答