为什么我需要SELECT权限:
UPDATE Sailors S SET
S.rating = S.rating - 1
虽然我不需要此查询:
UPDATE Sailors S
SET S.rating = 8
答案 0 :(得分:0)
首先,你实际上是设置S.rating = SELECT S.rating - 1 FROM Sailors S
在第二个中你只是设置S.rating =一个值(8)
答案 1 :(得分:0)
看起来你在第一个查询中读取S(第二个S.rating),就像在第二个查询中你只是将数据写入S.要读取数据,你需要SELECT权限。
答案 2 :(得分:0)
在第一个'S.rating -1'中这是Oracle未知的,oracle引擎转到表中引用别名S(在你的情况下是它的水手)和
a)从中查询评分
b)然后从中减去1
对于a点,它需要选择权限。
答案 3 :(得分:0)
首先选择
= S.rating - 1
在第二步中你没有选择
= 8
SELECT = GRANTEE可以检索一个或多个列的数据。
INSERT = GRANTEE可以为一个或多个列的新行提供数据。
UPDATE = GRANTEE可以修改一个或多个列的现有数据。