首頁  >  問答  >  主體

標題重寫為:成功解決 - 無法使用mysql命令列更新mySQL列名的問題

<p>我無法更改我建立的mysql資料庫中的列名。 </p> <p>我嘗試了以下命令,但似乎都沒有起作用。 </p> <pre class="brush:php;toolbar:false;">alter table (mytablename) CHANGE COLUMN (oldcolumnname) (newcolumnname) varchar(120);</pre> <pre class="brush:php;toolbar:false;">alter table (mytablename) RENAME COLUMN (oldcolumnname) (newcolumnname) varchar(120);</pre> <pre class="brush:php;toolbar:false;">ALTER TABLE (mytablename) CHANGE (oldcolumnname) (newcolumnname) varchar(120);</pre> <p>其中(mytablename)是我建立的表的名稱,(oldcolumnname)是原始列名,(newcolumnname)是新的列名。 </p> <p>這是我創建的一個簡單的待辦事項列表,用於學習MySQL,其中包含以下項目:</p> <table class="s-table"> <thead> <tr> <th>id</th> <th>todo</th> <th>completed</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>準備起飛</td> <td>是</td> </tr> <tr> <td>2</td> <td>學一些MySQL</td> <td>是</td> </tr> <tr> <td>3</td> <td>記得那個該死的分號</td> <td>否</td> </tr> </tbody> </table> <p>在這種情況下,我嘗試將列'todo'更改為'To Do'或'To-Do',但每次我嘗試這些命令時,都會出現著名的“檢查您的SQL版本手冊」。 </p> <p>有關我可能做錯了什麼的提示嗎?謝謝! </p> <p>我已經查看了多個教學網站,甚至查看了另一個StackOverflow的問題</p> <p><strong>更新</strong> 最終的解決方案是兩個步驟。首先,我需要在列名之間使用<strong>TO</strong>短語。其次,列名不喜歡特殊字元。 </p> <p>最終起作用的查詢是:</p> <pre class="brush:php;toolbar:false;">ALTER TABLE mytablename CHANGE COLUMN todo TO ToDo</pre> <p><br /></p>
P粉343408929P粉343408929402 天前527

全部回覆(1)我來回復

  • P粉448130258

    P粉4481302582023-08-21 19:44:33

    你應該保留名為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%'

    回覆
    0
  • 取消回覆