sql - 创建表 - Oracle APEX 错误:是什么导致了我的 CREATE TABLE sql 脚本中的错误?
问题描述
为 DIRECTOR、COMPANY 和 GENRE 创建表时收到错误消息。MOVIE 运行良好,我将其包括在内,因为它是 PK。DIRECTOR 错误:ORA-00905:缺少关键字 GENRE 和 COMPANY 错误:ora-00904 标识符无效
我被卡住了,所以任何事情都会有所帮助。谢谢。
CREATE TABLE MOVIE (
IMDB_ID CHAR(9) NOT NULL,
Title VARCHAR(50) NOT NULL,
YearCreated VARCHAR(8) NOT NULL,
MovieDuration NUMBER(5) NOT NULL,
Mean_Rating NUMBER(2,1) NOT NULL,
Number_of_Votes VARCHAR(7) NOT NULL,
Budget VARCHAR(11),
CONSTRAINT IMDB_PK PRIMARY KEY (IMDB_ID)
);
CREATE TABLE DIRECTOR (
DirectorID CHAR(9) NOT NULL,
DirectorFirst VARCHAR(20) NOT NULL,
DirectorMiddle VARCHAR(20),
DirectorLast VARCHAR(30) NOT NULL,
WriterFirst VARCHAR(20) NOT NULL,
WriterMiddle VARCHAR(20),
WriterLast VARCHAR(30) NOT NULL,
CONSTRAINT IMDB_PK PRIMARY KEY (IMDB_ID),
CONSTRAINT DIRECTOR_FK FOREIGN KEY(DirectorID)
);
CREATE TABLE COMPANY (
Production_Company VARCHAR(50),
CONSTRAINT IMDB_PK PRIMARY KEY (IMDB_ID)
);
CREATE TABLE GENRE (
Genre_1 VARCHAR(15) NOT NULL,
Genre_2 VARCHAR(15),
Genre_3 VARCHAR(15),
CONSTRAINT IMDB_PK PRIMARY KEY (IMDB_ID)
);
解决方案
您不能命名所有主键IMDB_PK
;Oracle 不允许这样做,因为这些名称必须是唯一的。
此外,您试图创建一个指向无处的外键约束- 摆脱它。
已修复,您的代码可能看起来像这样(我并不是说这是您真正想要的,但是 - 根据您迄今为止发布的内容 - 可能是一个很好的起点)。
SQL> CREATE TABLE movie
2 (
3 imdb_id CHAR (9) NOT NULL,
4 title VARCHAR (50) NOT NULL,
5 yearcreated VARCHAR (8) NOT NULL,
6 movieduration NUMBER (5) NOT NULL,
7 mean_rating NUMBER (2, 1) NOT NULL,
8 number_of_votes VARCHAR (7) NOT NULL,
9 budget VARCHAR (11),
10 CONSTRAINT imdb_pk PRIMARY KEY (imdb_id)
11 );
Table created.
SQL> CREATE TABLE director
2 (
3 directorid CHAR (9) NOT NULL,
4 directorfirst VARCHAR (20) NOT NULL,
5 directormiddle VARCHAR (20),
6 directorlast VARCHAR (30) NOT NULL,
7 writerfirst VARCHAR (20) NOT NULL,
8 writermiddle VARCHAR (20),
9 writerlast VARCHAR (30) NOT NULL,
10 CONSTRAINT director_fk PRIMARY KEY (directorid)
11 );
Table created.
SQL> CREATE TABLE company
2 (
3 production_company VARCHAR (50),
4 CONSTRAINT company_pk PRIMARY KEY (production_company)
5 );
Table created.
SQL> CREATE TABLE genre
2 (
3 genre_1 VARCHAR (15) NOT NULL,
4 genre_2 VARCHAR (15),
5 genre_3 VARCHAR (15),
6 CONSTRAINT genre_pk PRIMARY KEY (genre_1)
7 );
Table created.
SQL>
推荐阅读
- c - 为什么控件不进入repeat()函数?
- azure-data-factory-2 - Azure Batch 是否支持 Azure 数据工厂 v2 中的 .Net Core?
- javascript - 使用 3 个选择列表中的选项从 Google 站点中的 Google 表格返回表格
- gravity-forms-plugin - 重力形式数据到excel文件
- makefile - 部分扩展递归扩展变量
- php - 依赖注入传递参数给依赖
- ruby-on-rails - 从数组中返回不包含在记录字段结果中的字符串
- python - 如果列值不在 df2 列中,则获取 df1 的行
- css - 我怎样才能用里面的文字创建一个圆圈?
- alsa - 使用多插件组合多个 dsnoop 设备