使用参数创建视图以过滤表

时间:2014-01-25 06:17:35

标签: view

我有一个包含属于不同用户的行的表。我想在存储过程中创建一个视图,仅处理属于我的记录,即CREATE VIEW V1 AS SELECT * FROM T1 WHERE USER_ID = Z。

user_id z作为参数传递给存储过程

由于我必须在我的行上执行许多语句,所以我不想在所有语句中指定“WHERE USER_ID = Z”。

但是,我发现CREATE VIEW语句不接受参数。

是否有任何解决方案来创建仅包含属于我的行的表的子集?

2 个答案:

答案 0 :(得分:0)

我正在测试这种方法。

创建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; 插入T1 SELECT * FROM T2;

有更好的解决方案吗?

答案 1 :(得分:0)

我在使用临时表时遇到了困难。它不允许以下列格式将表重新打开为另一个表,

SELECT TEMP AS T1 JOIN TEMP AS T2 .....

所以我坚持这个问题。

希望有人能提供解决方案。我无法理解为什么VIEW不允许将参数传递给它,因为它似乎是一个很好的方法来处理表的子集。