簡體   English   中英

關鍵字'CONSTRAINT'附近的語法不正確

[英]Incorrect syntax near the keyword 'CONSTRAINT'

我收到此錯誤消息...

消息156,15級,狀態1,行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)); 

我認為這些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如何知道每個約束實際屬於哪個表?

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本身不在學期表中出現

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM