Der Titel wird wie folgt umgeschrieben: Erfolgreich gelöst – das Problem, dass MySQL-Spaltennamen nicht über die MySQL-Befehlszeile aktualisiert werden konnten
P粉343408929
2023-08-20 21:03:11
<p>Ich kann die Spaltennamen in der von mir erstellten MySQL-Datenbank nicht ändern. </p>
<p>Ich habe die folgenden Befehle ausprobiert, aber keiner davon scheint zu funktionieren. </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>Wobei (mytablename) der Name der von mir erstellten Tabelle ist, (oldcolumnname) der ursprüngliche Spaltenname und (newcolumnname) der neue Spaltenname ist. </p>
<p>Hier ist eine einfache Aufgabenliste, die ich zum Erlernen von MySQL erstellt habe, mit den folgenden Elementen: </p>
<table class="s-table">
<thead>
<tr>
<th>id</th>
<th>todo</th>
<th>abgeschlossen</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Bereit zum Abheben</td>
<td>is</td>
</tr>
<tr>
<td>2</td>
<td>Lernen Sie etwas über MySQL</td>
<td>is</td>
</tr>
<tr>
<td>3</td>
<td>Denken Sie an das verdammte Semikolon</td>
<td>Nein</td>
</tr>
</tbody>
</table>
<p>In diesem Fall habe ich versucht, die Spalte „todo“ in „To Do“ oder „To-Do“ zu ändern, aber jedes Mal, wenn ich diese Befehle ausprobiere, erhalte ich die berühmte Meldung „Überprüfen Sie Ihr SQL-Versionshandbuch“. </p>
<p>Irgendwelche Tipps, was ich möglicherweise falsch mache? Danke! </p>
<p>Ich habe mir mehrere Tutorial-Sites und sogar eine andere StackOverflow-Frage angesehen</p>
<p><strong>Update</strong> Die endgültige Lösung war ein zweistufiger Prozess. Zuerst muss ich die Phrase <strong>TO</strong> zwischen den Spaltennamen verwenden. Zweitens mögen Spaltennamen keine Sonderzeichen. </p>
<p>Die Abfrage, die letztendlich funktionierte, war: </p>
<pre class="brush:php;toolbar:false;">ALTER TABLE mytablename CHANGE COLUMN todo TO ToDo</pre>
<p><br /></p>
你应该保留名为todo的列;当你选择时,你可以随时更改输出,如下所示:
如果你真的觉得必须在列名中包含空格或破折号,在mysql中你可以使用任意标识符,只要将它们用反引号括起来:
但是每次在sql中引用该列时,你都需要将其用反引号括起来: