如何在MariaDB中重命名列名

39

我是SQL的新手,我试图在我的数据库表中更改列名。我正在使用带有'maria DB'的'xampp'(操作系统- Ubuntu 18.04)

我尝试了以下所有方法:

ALTER TABLE subject RENAME COLUMN course_number TO course_id;
ALTER TABLE subject CHANGE course_number course_id;
ALTER TABLE subject CHANGE 'course_number' 'course_id';
ALTER TABLE subject  CHANGE COLUMN 'course_number'  course_id varchar(255);
ALTER TABLE subject CHANGE 'course_number' 'course_id' varchar(255);

但是我得到的唯一输出是:

错误1064(42000):您的SQL语法有误;请检查与您的MariaDB服务器版本相对应的手册,以获取正确使用“column course_number to course_id”的语法。

请问有人能告诉我正确的答案吗?我不知道该怎么做。


6
可能是MariaDB更改列名的重复问题 - Jake Lee
1
你应该将符号从 ' 改为 `。 - ToujouAya
谢谢@ToujouAya。那就是错误所在。 - Kaveen Hyacinth
@JakeSteam 这与我的问题不同。他把“.”和表名弄混了,在我的情况下,我在整个程序中一直使用错误的符号。 - Kaveen Hyacinth
4个回答

58

表名、列名等可能需要用反引号进行引用,但不需要使用单引号 (') 或双引号 (")。

ALTER TABLE subject
    CHANGE COLUMN `course_number`   -- old name; notice optional backticks
                   course_id        -- new name
                   varchar(255);     -- must include all the datatype info

31

MariaDB [socialnet]> ALTER TABLE users RENAME COLUMN current_lat TO was_lat;<br/> 错误 1064 (42000):您的SQL语法有误,请检查与您的MariaDB服务器版本相对应的手册,以获取正确的语法使用方式。 - Michael restore Monica Cellio
2
@Michael,也许你使用的是错误的版本?你可以用 SELECT VERSION() 显示你的版本。 - Robert Hickman
10.3.22-MariaDB-1:10.3.22+maria~xenial-log - Michael restore Monica Cellio
1
我最终使用了“更改列”。 - Michael restore Monica Cellio
1
@MichaelrestoreMonicaCellio,是的,你的版本不支持更新的“重命名列”做法。 - Robert Hickman

7
alter table "table_name" change column "old_name" "New_name" "datatype"*;

在旧名称和新名称之间不需要使用“TO”,新名称的数据类型是必须的。

例如 -

alter table student change column id roll_no int;

谢谢你分享这个。我发誓文档说要使用“TO”,但是经过四次检查,它没有“TO”关键字。我都快疯了!哈哈,谢谢 :) - waltmagic

0
ALTER TABLE subject CHANGE COLUMN course_number course_id VARCHAR(100);

目前来看,你的回答不够清晰。请编辑以添加更多细节,以帮助他人理解这如何回答所提出的问题。你可以在帮助中心找到关于如何撰写好回答的更多信息。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接