提问人:Mohammed Arbaz 提问时间:12/22/2022 最后编辑:MureinikMohammed Arbaz 更新时间:12/24/2022 访问量:212
SQL 创建 2 个带约束的表
SQL create 2 tables with constraints
问:
从第一个表开始:创建两个带约束的表
CREATE TABLE department
(
depid varchar2(3) CONSTRAINT PKdepid PRIMARY KEY,
dname varchar2(10) NOT NULL
);
创建第一个表。
起始第二张表:
CREATE TABLE employee
(
eid number CONSTRAINT PKEID PRIMARY KEY,
ename varchar2(10),
depid varchar2(3)
CONSTRAINT FKDEPID
FOREIGN KEY REFERENCE dep(depid),
designation varchar2(10),
salary number CHECK (salary > 10000),
doj date
);
CREATE TABLE employee
(
eid number CONSTRAINT PKEID PRIMARY KEY,
ename varchar2(10),
depid varchar2(3)
CONSTRAINT FKDEPID
FOREIGN KEY REFERENCE dep(depid),
designation varchar2(10),
salary number CHECK (salary > 10000),
doj date
)
第 1 行的错误:
ORA-02253:此处不允许约束规范
并在第二个条件中应用
CREATE TABLE employee
(
eid number CONSTRAINT PKEID PRIMARY KEY,
ename varchar2(10),
depid varchar2(3)
CONSTRAIN FKDEPID
FOREIGN KEY REFERENCE dep(depid),
designation varchar2(10),
salary number CHECK (salary > 10000),
doj date
);
CREATE TABLE employee
(
eid number CONSTRAINT PKEID PRIMARY KEY,
ename varchar2(10),
depid varchar2(3)
CONSTRAIN FKDEPID
FOREIGN KEY REFERENCE dep(depid),
designation varchar2(10),
salary number CHECK (salary > 10000),
doj date
)
第 1 行的错误:
ORA-00907:缺少右括号
我只是想创建表格
答:
1赞
Mureinik
12/22/2022
#1
不应在内联外键定义中指定,只是(不是当前那样)。另外,请注意,您的语句引用了该表,而您的另一个表实际上称为:foreign key
references
reference
dep
department
CREATE TABLE employee (
eid NUMBER CONSTRAINT pkeid PRIMARY KEY,
ename VARCHAR2(10),
depid VARCHAR2(3) CONSTRAINT fkdepid REFERENCES department(depid), -- Here!
designation VARCHAR2(10),
salary NUMBER CHECK(salary>10000),
doj DATE);
评论
0赞
Adrian Klaver
12/24/2022
当我们出现拼写错误时,它不应该是.此外,您不需要使用关键字。仅当您要显式命名约束时才需要,否则 Postgres 将创建一个名称。TABLE
TAEBL
CONSTRAINT
0赞
Mureinik
12/24/2022
@AdrianKlaver很好地抓住了错别字,谢谢。编辑和修复。不知道你为什么要引用Postgres。问题是关于甲骨文的
0赞
Adrian Klaver
12/24/2022
仍然没有修复。
0赞
Mureinik
12/24/2022
@AdrianKlaver :facepalm:我今天似乎不能直接打字了......再次感谢
评论
CONSTRAINT
CONSTRAIN
CONSTRAINT
T
FOREIGN KEY ... REFERENCE .....
REFERENCES
S