已解决 - 无法通过mysql命令行更新mySQL列名

29 浏览
0 Comments

已解决 - 无法通过mysql命令行更新mySQL列名

我无法更改我创建的mysql数据库中的列名。\n我尝试了以下命令,但似乎都没有起作用。\n

alter table (mytablename) CHANGE COLUMN (oldcolumnname) (newcolumnname) varchar(120);

\n

alter table (mytablename) RENAME COLUMN (oldcolumnname) (newcolumnname) varchar(120);

\n

ALTER TABLE (mytablename) CHANGE (oldcolumnname) (newcolumnname) varchar(120);

\n其中(mytablename)是我创建的表名,(oldcolumnname)是原始列名,(newcolumnname)是新的列名。\n这是我创建的一个简单的待办事项列表,用于学习MySQL,其中包含以下项目:\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

id todo completed
1 准备起飞
2 学习一些MySQL
3 记住那个该死的分号

\n在这种情况下,我想将列“todo”更改为“To Do”或“To-Do”,但每次尝试这些命令时,都会出现著名的“检查您的SQL版本手册”错误。\n有什么提示可以告诉我我可能做错了什么吗?谢谢!\n我已经查看了多个教程网站,甚至查看了另一个StackOverflow问题\n更新\n最终解决方案有两个部分。首先,我需要在列名之间使用TO短语。其次,列名不喜欢特殊字符。\n最终起作用的查询是:\n

ALTER TABLE mytablename CHANGE COLUMN todo TO ToDo

0
0 Comments

问题的原因是MySQL不允许在列名中包含空格或特殊字符。解决方法是使用反引号将列名括起来,或者使用ALTER TABLE语句将列名更改为不包含特殊字符的名称。

具体的解决方法如下:

1. 使用反引号将列名括起来,例如:`select id,`To Do`,completed from ... where `To Do` like '%learn%'`

2. 使用ALTER TABLE语句将列名更改为不包含特殊字符的名称,例如:`ALTER TABLE mytable RENAME todo TO ToDo;`

通过以上两种方法,可以解决无法通过mysql命令行更新MySQL列名的问题。

0