PostgreSQL错误:“varchar”或附近的语法错误

问题描述 投票:2回答:3

我正在尝试更改表'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);

错误:“varchar”或附近的语法错误第1行:ALTER TABLE采用ALTER COLUMN course_id varchar(10)REFEREN ...

sql postgresql foreign-keys ddl
3个回答
3
投票

更改列的类型并在其上添加外键是两个不同的语句:

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);

1
投票

你的语法错了。肯定是:

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

1
投票

参考文献如下:在您的情况下:

Alter table takes ADD CONSTRAINT FK_takes_course_id FOREIGN KEY (course_id) REFERENCES course(course_id)
© www.soinside.com 2019 - 2024. All rights reserved.