繁体   English   中英

Oracle SQL-ALTER VIEW:ORA-00922:丢失或无效的选项

[英]Oracle SQL - ALTER VIEW : ORA-00922: missing or invalid option

我想将主键约束添加到我的列中,但是Oracle给我以下错误消息:

ORA-00922:丢失或无效的选项

SQL:

ALTER VIEW view_my_departments
add CONSTRAINT department_id_pk
    PRIMARY KEY (department_id);

视图没有约束。 视图只是一个带有名称保存的查询。 因为它是查询,所以它返回结果集,因此就查询而言可以与表互换。

然而,在它坚持没有实际的数据。 仅表具有数据,因此表可能具有约束。 找出哪个表包含department_id(可能是我猜中的department_id),并将约束添加到该表中。

ALTER TABLE department
add CONSTRAINT department_id_pk
    PRIMARY KEY (department_id);

查表就像使用一个子查询。

如果“ myview”定义为:

select r.a, ro.b, u.c
from registration r
inner join roster ro on r.roster_id = ro.roster_id
inner join user u on u.user_id = ro.user_id

然后数据库将解释以下查询

select a, b, c
from myview
where x = 1

select a, b, c
from (select r.a, ro.b, u.c
      from registration r
      inner join roster ro on r.roster_id = ro.roster_id
      inner join user u on u.user_id = ro.user_id)
where x = 1

在这里,必须使用disable子句编写它们,因为它无法通过验证。

所以尝试

ALTER VIEW view_my_departments
add CONSTRAINT department_id_pk
    PRIMARY KEY (department_id) disable;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM