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

时间:2015-01-19 06:49:45

标签: sql postgresql foreign-keys ddl

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

3 个答案:

答案 0 :(得分: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 :(得分:1)

你的语法错了。必须是:

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

答案 2 :(得分:1)

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

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