我收到此错误消息...
Msg 156,Level 15,State 1,Line 20
关键字'CONSTRAINT'附近的语法不正确。
我完成了我的研究,但我仍然坚持完成这个脚本。
这就是我输入的内容。
DROP TABLE SEMESTER;
DROP TABLE CLASS;
DROP TABLE STUDENT;
CREATE TABLE STUDENT (
stuid int not null,
stulname CHAR(40) not null,
stufname CHAR(40) not null,
stugender CHAR(1) not null,
stubirthdate DATE not null);
CREATE TABLE CLASS (
title CHAR(40) not null PRIMARY KEY,
instructor CHAR(40) not null );
CREATE TABLE SEMESTER (
year int not null );
CONSTRAINT pk_student PRIMARY KEY (stuid, stulname, stufname, stugender, stubirthdate),
CONSTRAINT pk_class PRIMARY KEY (title, instructor),
CONSTRAINT pk_semester PRIMARY KEY (semid, year));
答案 0 :(得分:3)
我认为那些CONSTRAINT
语句需要在 CREATE TABLE
语句中。例如,STUDENT
表应如下所示:
CREATE TABLE STUDENT (
stuid int not null,
stulname CHAR(40) not null,
stufname CHAR(40) not null,
stugender CHAR(1) not null,
stubirthdate DATE not null,
CONSTRAINT pk_student PRIMARY KEY (stuid, stulname, stufname, stugender, stubirthdate),
);
否则,RDBMS如何知道每个约束实际属于哪个表?
答案 1 :(得分:0)
DROP TABLE SEMESTER;
DROP TABLE CLASS;
DROP TABLE STUDENT;
CREATE TABLE STUDENT (
stuid int not null,
stulname CHAR(40) not null,
stufname CHAR(40) not null,
stugender CHAR(1) not null,
stubirthdate DATE not null
CONSTRAINT pk_student PRIMARY KEY (stuid, stulname, stufname, stugender, stubirthdate),);
CREATE TABLE CLASS (
title CHAR(40) not null ,
instructor CHAR(40) not null ,
CONSTRAINT pk_class PRIMARY KEY (title, instructor));
CREATE TABLE SEMESTER (
year int not null ,
semid int not null
CONSTRAINT pk_semester PRIMARY KEY (semid, year));;
根据我的理解 这里必须在学生的表格内创建约束 和 第二个表你在课堂上创建2次主键(标题) 和 来到第三表semid本身不在学期表中