Неправильный синтаксис рядом с ключевым словом ‘CONSTRAINT’

Вопрос: Я получаю это сообщение об ошибке... Msg 156, уровень 15, состояние 1, строка 20 Неправильный синтаксис рядом с ключевым словом "CONSTRAINT". Я сделал свое исследование, и я все еще придерживаюсь завершения этого сценария. Вот что я вошел. DROP TABLE SEMESTER; DROP TABLE CLASS; DROP TABLE STUDENT; CREATE TABLE STUDENT ( stuid int not null,

Вопрос:

Я получаю это сообщение об ошибке…

Msg 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 знает, к какой таблице на самом деле принадлежит каждое ограничение?

Ответ №1DROP 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));;

AS для моего понимания Здесь ограничение должно быть создано внутри таблицы для ученика, а вторая таблица u создает 2-кратный первичный ключ в классе (заголовок) и подходит к третьей таблице semid, не присутствующей в таблице семестра

Оцените статью
Добавить комментарий