首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL (Oracle):如何改进逻辑模型和纠正标识错误?

问SQL (Oracle):如何改进逻辑模型和纠正标识错误?
EN

Stack Overflow用户
提问于 2018-04-29 08:21:28
回答 2查看 194关注 0票数 0

这是一个视频存储的逻辑模型。客户从商店借来该副本。

逻辑模型 (请参阅逻辑模型)

在建立逻辑模型后,生成序列出现了5个错误。

其中一些是:

移除主键

->我不明白为什么要删除主key.When --我删除了客户端表上的主键"clientno“。软件“”不允许我删除主键。

无效标识符

->在网上搜索信息,但无法理解.

问题在于逻辑模型。模型想要检查客户借来的平均视频。目前流行的电影是什么?

这些都是错误:

代码语言:javascript
复制
create table client
(
    clientno             number(8) not null,
    clientname           varchar2(30),
    clientadress         varchar2(50),
    clientclassification varchar2(30)
) 

错误:

SQL错误: ORA-00955:已由现有对象使用的名称 00955。00000 -“名称已被现有对象使用”

代码语言:javascript
复制
alter table client 
    add constraint client_pk primary key (clientno)  

错误:

SQL错误: ORA-02260: table只能有一个主键 02260。00000 -“表只能有一个主键” *原因:不言而喻。 *操作:移除额外的主键。

代码语言:javascript
复制
alter table copy add constraint copy_pk primary key (copycode, client_clientno, movie_movieno)  

错误:

SQL错误: ORA-00904:"COPYCODE":无效标识符 00904。00000 - "%s:无效标识符“

代码语言:javascript
复制
alter table store add constraint store_pk primary key (storecode, storecode1)

错误:

SQL错误: ORA-02260: table只能有一个主键 02260。00000 -“表只能有一个主键” *原因:不言而喻。 *操作:移除额外的主键。

代码语言:javascript
复制
alter table copy 
    add constraint copy_client_fk 
        foreign key (client_clientno) references client (clientno) 

错误:

SQL错误: ORA-00904:"CLIENT_CLIENTNO":无效标识符 00904。00000 - "%s:无效标识符“

代码语言:javascript
复制
alter table copy 
    add constraint copy_movie_fk 
        foreign key (movie_movieno) references movie (movieno)  

错误:

SQL错误: ORA-00904:"MOVIE_MOVIENO":无效标识符 00904。00000 - "%s:无效标识符“

EN

回答 2

Stack Overflow用户

发布于 2018-04-29 09:00:13

有很多原因可以解释为什么你会犯这样的错误。但是完全是吗?实际上只有一个解释:在模式中运行这个脚本时,您(或其他人)以前已经运行过该脚本的一个版本,并且已经用这些名称创建了表(可能具有不同的投影)。

假设您想要替换该架构,则需要在运行脚本之前编写一些drop语句并运行这些语句。或者你需要一个不同的账户。

票数 0
EN

Stack Overflow用户

发布于 2018-04-29 09:00:23

你发布的每一个错误都是不言自明的,只有当你读懂甲骨文告诉你的信息时,才能很容易地修复。

一

create table client以

ORA-00955:已有的对象已经使用了名称

显然,您不能创建两个名称相同的对象。有一种叫做CLIENT的东西(很可能是在执行命令之前忘记删除的表)。如果你不知道那可能是什么,快跑

代码语言:javascript
复制
select * from user_objects where object_name = 'CLIENT';

你会找到的。然后:要么删除该对象,要么重命名当前试图创建的对象。

二

截至

ORA-02260:表只能有一个主键*原因:不言自明。*操作:移除额外的主键。

没什么可说的..。不言自明,不是吗?

三

ORA-00904:"COPYCODE":无效标识符

意味着您在一个命令中使用COPYCODE列,而该列不存在于受该命令影响的表中。例如,你想要

代码语言:javascript
复制
alter table client modify copycode not null;

如果表中没有这样的列,您就会得到该错误。

我建议您一步一步地走:运行一个命令,确保没有问题。然后再写一个,执行它,确保它也是可以的。继续下一个,以此类推。婴儿步子。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50084666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档