小编Los*_*ess的帖子

主键由两个外键组成?神谕

我有关于表创建的问题.我想将"Ono"和"Pno"的属性组合成新表的主键.这些都是外键,每个都来自不同的表.我只使用CONSTRAINT Ono_Pno_PK PRIMARY KEY(Ono,Pno)吗?

到目前为止我用过的东西:

CREATE TABLE ODetails
(
    Ono Number Not Null,
    Pno Number Not Null,
    Qty Number(3) Not Null,
    Creation_Date Date Not Null,
    Created_By VARCHAR(10) Not Null,
    Last_Update_Date Date Not Null,
    Last_Updated_By VARCHAR2(10) Not Null,
    CONSTRAINT Ono_FK FOREIGN KEY (Ono) REFERENCES Orders (Ono),
    CONSTRAINT Pno_FK FOREIGN KEY (Pno) REFERENCES Parts (Pno)
);
Run Code Online (Sandbox Code Playgroud)

sql oracle database-design foreign-keys primary-key

5
推荐指数
1
解决办法
1万
查看次数

ORA-00979: 不是 GROUP BY 表达式

我正在尝试展示学生工作的所有不同公司。但是,只应显示雇用四名以上学生的公司。

这是我到目前为止:

SELECT EMPLOYER, COUNT (STUDENT_ID)
FROM STUDENT
GROUP BY STUDENT_ID
HAVING COUNT (STUDENT_ID) >4;
Run Code Online (Sandbox Code Playgroud)

我不断收到此消息:

ERROR at line 1: 
ORA-00979: not a GROUP BY expression
Run Code Online (Sandbox Code Playgroud)

我不明白。我之前也试过这个:

SELECT STUDENT.EMPLOYER, COUNT (STUDENT.STUDENT_ID)
FROM STUDENT
GROUP BY STUDENT.STUDENT_ID
HAVING COUNT (STUDENT.STUDENT_ID) >4;
Run Code Online (Sandbox Code Playgroud)

但似乎没有任何效果。任何帮助表示赞赏。如果有帮助,我在 SQL*Plus 上。

sql group-by count

2
推荐指数
1
解决办法
4183
查看次数

CHECK 约束将注册日期限制为 2005 年 8 月 26 日之后的日期

需要一些帮助:

创建一个名为 TEMP_STUDENT 的表,其中包含以下列和约束:学生 ID 列 STUD_ID 是主键,学生名字列 FIRST_NAME,学生姓氏列 LAST_NAME,列 ZIP 作为外键Student Database Schema 的 ZIPCODE 表中的 ZIP 列,以及一个非空的 REGISTRATION_DATE 列,并且有一个 CHECK 约束将注册日期限制为 2005 年 8 月 26 日之后的日期。所有约束都必须命名。first_name 和 last_name 列都是必需的。

我懂了:

CREATE TABLE Temp_Student
(STUD_ID NUMBER (8,0),
FIRST_NAME VARCHAR2(25) NOT NULL,
LAST_NAME VARCHAR2(25) NOT NULL,
ZIP VARCHAR2(5),
REGISTRATION_DATE DATE NOT NULL,
CONSTRAINT STUD_ID_PK PRIMARY KEY(STUD_ID),
CONSTRAINT ZIP_FK FOREIGN KEY (ZIP)
REFERENCES ZIPCODE (ZIP),
CONSTRAINT chk_REGISTRATION_DATE CHECK (REGISTRATION_DATE> REGISTRATION_DATE 'TO DATE('26-AUGUST-2005'))
);
Run Code Online (Sandbox Code Playgroud)

对最后一个约束的任何帮助,我不知道我在做什么,将不胜感激。

不断收到此消息:

CONSTRAINT chk_REGISTRATION_DATE CHECK (REGISTRATION_DATE> REGISTRATION_DATE …
Run Code Online (Sandbox Code Playgroud)

sql datetime date

0
推荐指数
1
解决办法
2万
查看次数