標題重寫為:成功解決 - 無法使用mysql命令列更新mySQL列名的問題
P粉343408929
2023-08-20 21:03:11
<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>
你應該保留名為todo的欄位;當你選擇時,你可以隨時更改輸出,如下所示:
如果你真的覺得必須在列名中包含空格或破折號,在mysql中你可以使用任意標識符,只要將它們用反引號括起來:
但是每次在sql中引用該列時,你都需要將其用反引號括起來: