2017-01-09 39 views
0

表格1具有3列。更改行值,同時僅擁有表格中一列的權限

id column1 column2 
1 a  a 
2 a  a 

我只有id列的選擇/更新權限。

如何更改id爲2的行中的值,因此它看起來就是這樣。

2 b b 

如果我有更新所有列的權限,我可以這樣做。

update table1 
set column1 = value, column2 = value 
where id = 2; 

我沒有,所以我大概可以刪除第2行,然後插入我想要的值,但有沒有辦法做到這一點,但不刪除?

+2

如果要更改數據,您需要更新權限。獲得您的工作所需的權限。 –

+0

什麼是錯誤 –

+0

@Ersin沒有錯誤。我只是尋找另一種方式來做到這一點。出於好奇。 –

回答

0

如果您可以更新您沒有權限的列(表,對象等),那麼數據庫不會執行其任務。

你總是在擁有架構創建過程的選項:

PROCEDURE ownerschema.updatetable1 (
    p_id   IN table1.id%TYPE 
    , p_newcolumn1 IN table1.column1%TYPE 
    , p_newcolumn2 IN table1.column2%TYPE 
) 
AS 
BEGIN 
    UPDATE table1 
     SET column1 = p_newcolumn1, column2 = p_newcolumn2 
    WHERE id = p_id; 
END updatetable1; 
相關問題