PostgreSQL ERROR: syntax error at or near "varchar"

PostgreSQL ERROR: syntax error at or near "varchar"

我正在尝试更改 table 'course' 中的 course_id 列,但我一直收到此错误:

CREATE TABLE course 
(
 course_id varchar(10) PRIMARY KEY, 
 title varchar(30), 
 dep_name varchar(10), 
 credits numeric(2,2) CHECK (credits>0)
);

ALTER TABLE takes ALTER COLUMN course_id varchar(10) REFERENCES course(course_id);

ERROR: syntax error at or near "varchar" LINE 1: ALTER TABLE takes ALTER COLUMN course_id varchar(10) REFEREN...

你的语法有误。必须是:

ALTER TABLE takes ALTER COLUMN course_id TYPE varchar(10) ;

参考文献如下: 你的情况:

Alter table takes ADD CONSTRAINT FK_takes_course_id FOREIGN KEY (course_id) REFERENCES course(course_id)

改变列的类型和在其上添加外键是两种不同的说法:

ALTER TABLE takes ALTER COLUMN course_id TYPE VARCHAR(10);

ALTER TABLE takes 
ADD CONSTRAINT takes_course_fk FOREIGN KEY (course_id) 
REFERENCES course(course_id);