標題重寫為:成功解決 - 無法使用mysql命令列更新mySQL列名的問題
P粉343408929
P粉343408929 2023-08-20 21:03:11
0
1
509

我無法更改我建立的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


P粉343408929
P粉343408929

全部回覆 (1)
P粉448130258

你應該保留名為todo的欄位;當你選擇時,你可以隨時更改輸出,如下所示:

select id, todo as 'To Do', completed from ...

如果你真的覺得必須在列名中包含空格或破折號,在mysql中你可以使用任意標識符,只要將它們用反引號括起來:

alter table ... rename column todo to `To Do`

但是每次在sql中引用該列時,你都需要將其用反引號括起來:

select id,`To Do`,completed from ... where `To Do` like '%learn%'
    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板
    關於我們 免責聲明 Sitemap
    PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!