2014-01-25 41 views
0

我有一個表,其中包含屬於各種用戶的行。我想創建一個存儲過程中的視圖的工作只屬於我的記錄,即CREATE VIEW V1 AS SELECT * FROM T1 WHERE USER_ID = Z.使用參數創建視圖來過濾表

user_ID的Z值的存儲過程作爲一個參數

由於我必須在我的行上執行很多語句,所以我不想在所有語句中指定「WHERE USER_ID = Z」。

但是,我發現CREATE VIEW語句不接受參數。

是否有解決方案來創建只包含屬於我的行的表的子集?

回答

0

我正在測試這種方法。

CREATE TEMPORARY TABLE T2 LIKE T1; INSERT INTO T2 SELECT * FRON T1 WHERE USER_ID = Z;

我將進行使用T2

在存儲過程的結束時,所有的操作,我將更新T1 FROM T2如下。

DELETE T1 WHERE USER_ID = Z; INSERT INTO T1 SELECT * FROM T2;

任何更好的解決方案?

0

我很難使用臨時表。它不允許以下格式下表重新開闢爲另一個表,

選擇溫度爲T1 JOIN TEMP爲T2 .....

所以我堅持的問題。

希望有人能提供解決方案。我不明白爲什麼VIEW不允許將參數傳遞給它,因爲它似乎是處理表的子集的好方法。