我有一个包含属于不同用户的行的表。我想在存储过程中创建一个视图,仅处理属于我的记录,即CREATE VIEW V1 AS SELECT * FROM T1 WHERE USER_ID = Z。
user_id z作为参数传递给存储过程
由于我必须在我的行上执行许多语句,所以我不想在所有语句中指定“WHERE USER_ID = Z”。
但是,我发现CREATE VIEW语句不接受参数。
是否有任何解决方案来创建仅包含属于我的行的表的子集?
答案 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不允许将参数传递给它,因为它似乎是一个很好的方法来处理表的子集。