Sql 更改视图限制

Sql 更改视图限制,sql,postgresql,Sql,Postgresql,我创建了以下视图: CREATE VIEW games_lost as select p.id, p.name, count(m.loser) as ng from players p left join matches m on p.id=m.loser where m.tournament_id = 0 group by p.id, p.name; 我希望更新给定比赛id的位置。 查看了,但没有找到如何操作的说明。您不能。您必须使用创建或替换视图

我创建了以下视图:

CREATE VIEW games_lost as 
    select p.id, p.name, count(m.loser) as ng
    from players p left join matches m 
    on p.id=m.loser
    where m.tournament_id = 0
    group by p.id, p.name;
我希望更新给定比赛id的位置。

查看了,但没有找到如何操作的说明。

您不能。您必须使用
创建或替换视图
,从头开始重新创建整个视图。发件人:

alterview
更改视图的各种辅助属性(如果要修改视图的定义查询,请使用
创建或替换视图


(重点补充)

这里似乎对视图的使用存在误解。视图在SELECT查询中的使用与表完全相同

您可以定期使用“创建”或“替换”视图替换视图,但这将是非常糟糕的设计

因此,我的建议是,该视图返回按锦标赛id分组的所有锦标赛的结果:

CREATE VIEW games_lost as 
    select p.id, p.name, m.tournament_id, count(m.loser) as ng
    from players p left join matches m 
    on p.id=m.loser
    group by p.id, p.name,m.tournament_id;
然后在代码中,使用WHERE子句中的特定id查询视图:

SELECT id, name, ng FROM games_lost WHERE tournament_id = 0;

但是为什么要使用特定于比赛id的视图?有一个普通的游戏你看不见了。(或至少在视图名称中添加id…)视图必须是通用的。您可以在实例化视图的位置应用您的条件。即,从(1,2,3…)中id丢失的游戏中选择*