"VARCHAR" 在此位置无效,需要 EOF,';'

"VARCHAR" is not valid at this position, expecting EOF, ';'

CREATE TABLE Students 
(
    stud_id INT(10) UNSIGNED not null,
    stud_name VARCHAR(30) not null,
    stud_phone CHAR(11) not null,
    stud_date_of_birth DATE not null,
    stud_city CHAR(30) not null,
    stud_address CHAR(100) not null,
    stud_postcode SMALLINT UNSIGNED not null,
    
    PRIMARY KEY (stud_id)
);

CREATE TABLE Subjects
(
    subj_code CHAR(6) not null,
    subj_title VARCHAR(30),

    PRIMARY KEY (subject_code)
);

CREATE TABLE Subj_Enrolment
(
    stud_id INT(10) UNSIGNED not null,
    subj_code CHAR(6) not null,
    semester SMALLINT UNSIGNED not null,
    year YEAR not null,
    comment VARCHAR(100) not null,
    
    PRIMARY KEY (stud_id, subj_code, semester, year),
    FOREIGN KEY (stud_id) REFERENCES Students(stud_id),
    FOREIGN KEY (subj_id) REFERENCES Subjects(subj_code)
);

CREATE TABLE Grades
(
    stud_id INT(10) UNSIGNED not null,
    subj_code CHAR(10) not null,
    semester SMALLINT UNSIGNED not null,
    year YEAR not null,
    grade CHAR(2) not null,
    
    PRIMARY KEY (stud_id, subj_code, semester, year),
    FOREIGN KEY (stud_id) REFERENCES Students(stud_id),
    FOREIGN KEY (subj_code) REFERENCES Subjects(subj_code)
);

ALTER TABLE Students
ADD COLUMN gender CHAR(1) CHECK(gender='m' OR gender='f');

ALTER TABLE Subj_Enrolments
DROP COLUMN comment VARCHAR(100);

所以在第 52 行或最后一行“DROP COLUMN comment VARCHAR(100);”出现的错误写在标题上,但我不明白为什么会这样,我造成了什么错误?我在创建表时确实使用了 VARCHAR,但是当我想更改它时,第一次更改是正确的,但第二次更改是错误的

您不得使用 DROP 指定列类型,只能指定列名,因此:

ALTER TABLE Subj_Enrolments
DROP COLUMN comment;

https://dev.mysql.com/doc/refman/8.0/en/alter-table.html