相关疑难解决方法(0)

我可以在MySQL中使用参数创建视图吗?

我有这样的观点:

CREATE VIEW MyView AS
   SELECT Column FROM Table WHERE Value = 2;
Run Code Online (Sandbox Code Playgroud)

我想让它更通用,它意味着将2变为变量.我试过这个:

CREATE VIEW MyView AS
   SELECT Column FROM Table WHERE Value = @MyVariable;
Run Code Online (Sandbox Code Playgroud)

但MySQL不允许这样做.

我找到了一个丑陋的解决方法:

CREATE FUNCTION GetMyVariable() RETURNS INTEGER DETERMINISTIC NO SQL
BEGIN RETURN @MyVariable; END|
Run Code Online (Sandbox Code Playgroud)

然后观点是:

CREATE VIEW MyView AS
   SELECT Column FROM Table WHERE Value = GetMyVariable();
Run Code Online (Sandbox Code Playgroud)

但它看起来很糟糕,而且用法也很糟糕 - 我必须在每次使用视图之前设置@MyVariable.

有没有解决方案,我可以像这样使用:

SELECT Column FROM MyView(2) WHERE (...)
Run Code Online (Sandbox Code Playgroud)

具体情况如下:我有一个表存储有关被拒绝请求的信息:

CREATE TABLE Denial
(
    Id INTEGER UNSIGNED AUTO_INCREMENT,
        PRIMARY KEY(Id),
    DateTime DATETIME NOT NULL,
    FeatureId MEDIUMINT …
Run Code Online (Sandbox Code Playgroud)

mysql parameters stored-procedures view

85
推荐指数
3
解决办法
11万
查看次数

标签 统计

mysql ×1

parameters ×1

stored-procedures ×1

view ×1