我无法更改我创建的mysql数据库中的列名。
我尝试了以下命令,但似乎都没有起作用。
alter table (mytablename) CHANGE COLUMN (oldcolumnname) (newcolumnname) varchar(120);
alter table (mytablename) RENAME COLUMN (oldcolumnname) (newcolumnname) varchar(120);
ALTER TABLE (mytablename) CHANGE (oldcolumnname) (newcolumnname) varchar(120);
其中(mytablename)是我创建的表的名称,(oldcolumnname)是原始列名,(newcolumnname)是新的列名。
这是我创建的一个简单的待办事项列表,用于学习MySQL,其中包含以下项目:
| id | todo | completed |
|---|---|---|
| 1 | 准备起飞 | 是 |
| 2 | 学习一些MySQL | 是 |
| 3 | 记住那个该死的分号 | 否 |
在这种情况下,我尝试将列'todo'更改为'To Do'或'To-Do',但每次我尝试这些命令时,都会出现著名的“检查您的SQL版本手册”。
有关我可能做错了什么的提示吗?谢谢!
我已经查看了多个教程网站,甚至查看了另一个StackOverflow的问题
更新 最终的解决方案是两个步骤。首先,我需要在列名之间使用TO短语。其次,列名不喜欢特殊字符。
最终起作用的查询是:
ALTER TABLE mytablename CHANGE COLUMN todo TO ToDo
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
你应该保留名为todo的列;当你选择时,你可以随时更改输出,如下所示:
如果你真的觉得必须在列名中包含空格或破折号,在mysql中你可以使用任意标识符,只要将它们用反引号括起来:
但是每次在sql中引用该列时,你都需要将其用反引号括起来: