【发布时间】:2021-04-09 19:17:08
【问题描述】:
首先,我很抱歉再次提出同样的问题,但是关于旧主题的信息在我的 oraclesql 代码中不起作用,其次可能存在一些语法错误,我上学期在学校学习了 mysql,但现在我们课上用老的mysql资料学习oraclesql,所以有点迷糊。
所以我的问题是我想创建 3 个相关表(电影演员表),但我缺少右括号。尝试使用外键将演员表连接到电影表,将演员表连接到演员表。我究竟做错了什么?意大利面怎么样?
CREATE TABLE Movie (
movie_id NUMBER(7) NOT NULL,
movie_name varchar2(50) NOT NULL ,
movie_director varchar2(50) NOT NULL ,
movie_year INT(4) NOT NULL ,
movie_duration INT(3) ,
movie_language varchar2(15) ,
movie_rating number(4,2) ,
PRIMARY KEY(movie_id),
CONSTRAINT is_unique UNIQUE(movie_id),
CONSTRAINT movie_id_checker CHECK(movie_id>0 and movie_id<=9999999)
);
CREATE TABLE Casts (
movie_id_fk INT(7) FOREIGN KEY REFERENCES Movie(movie_id) ,
cast_id INT(7) NOT NULL,
actor_fullname varchar2(50) NOT NULL ,
actor_role varchar2(50) ,
PRIMARY KEY(cast_id),
CONSTRAINT is_unique UNIQUE(cast_id),
CONSTRAINT cast_id_checker CHECK(cast_id>0 and cast_id<=9999999)
);
CREATE TABLE Actor (
cast_id_fk INT(7) FOREIGN KEY REFERENCES Casts(cast_id) ,
actor_id INT(7) NOT NULL,
actor_name CHAR(30) ,
actor_surname CHAR(25) ,
actor_gender CHAR(5) ,
actor_age CHAR(3) CONSTRAINT real_age_check CHECK(actor_age>0 AND actor_age<=150),
PRIMARY KEY(actor_id),
CONSTRAINT is_unique UNIQUE(actor_id),
CONSTRAINT actor_id_checker CHECK(actor_id>0 and actor_id<=9999999)
)
【问题讨论】:
-
创建 Casts 和创建 Actor 后为什么缺少分号?
-
抱歉我的错:/现在添加
-
INT(4) 在 oracle 中有效吗?
-
@praveen 似乎不是 :D 感谢 mt0 先生,我知道了
标签: sql oracle create-table