PostgreSQL重命名列报错:syntax error at or near 'RENAME' 求助
PostgreSQL列重命名报错的解决办法
你遇到的syntax error at or near "RENAME"错误,问题出在两个地方:
错误1:多列重命名的语法格式错误
PostgreSQL里,在同一条ALTER TABLE语句中批量重命名列时,每个RENAME子句之间必须用逗号分隔,不能直接连续写RENAME。
错误2:错误地在RENAME语句中指定数据类型
你的代码里有一行:
RENAME student_5digit_zip char TO stud_student_5digit_zip char
RENAME只负责修改列名,不能同时指定数据类型。如果需要修改列的类型,得单独用ALTER COLUMN ... TYPE语句;如果只是改名,直接去掉两边的char即可。
修正后的完整代码
ALTER TABLE student RENAME student_ID TO stud_student_ID, RENAME student_number TO stud_student_number, RENAME student_last_name TO stud_student_last_name, RENAME student_first_name TO stud_student_first_name, RENAME student_city TO stud_student_city, RENAME student_state TO stud_student_state, RENAME student_5digit_zip TO stud_student_5digit_zip, RENAME date_of_birth TO stud_date_of_birth, RENAME start_semester_stud TO stud_start_semester, RENAME start_date_stud TO stud_start_date, RENAME currently_enrolled TO stud_currently_enrolled, RENAME honors_student TO stud_honors_student, RENAME overall_gpa TO stud_overall_gpa, RENAME credit_hours TO stud_credit_hours, RENAME academic_level_id TO stud_academic_level_id, RENAME program_id TO stud_program_id, RENAME school_id TO stud_school_id, RENAME degree_id TO stud_degree_id;
如果确实需要修改student_5digit_zip列的类型,可以在这条语句之后再加一条:
ALTER TABLE student ALTER COLUMN stud_student_5digit_zip TYPE char;
内容的提问来源于stack exchange,提问作者stella1897
相关产品推荐
相关产品推荐

