ALTER TABLE - Benennen Sie eine Spalte um


102

Das macht mich verrückt!

Ich möchte eine Spalte in meiner Blog-Tabelle von read-more in read_more umbenennen

Ich habe das alles versucht:

  ALTER TABLE blog RENAME COLUMN read-more to read_more;
  ALTER TABLE blog CHANGE COLUMN 'read-more' 'read_more' VARCHAR(255) NOT NULL;

Und das verstehe ich immer!

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'COLUMN read-more to read_more' at line 1

Ich benutze MySQL 5.5

Antworten:


139

Die gültige Syntax befindet sich in der Nähe Ihres zweiten Versuchs, Sie müssen jedoch die Spaltennamen mit Backticks und nicht mit einfachen Anführungszeichen umgehen:

ALTER TABLE `blog` CHANGE COLUMN `read-more` `read_more` VARCHAR(255) NOT NULL;

18
ALTER TABLE `blog` CHANGE  `read-more` `read_more` VARCHAR(255) NOT NULL;

Die oben genannte Abfrage ist korrekt und es ist nicht erforderlich, das Schlüsselwort "column" und Anführungszeichen um den Tabellen- und Spaltennamen zu verwenden, wenn Sie eine mysql-Datenbank verwenden:

ALTER TABLE blog CHANGE read-more read_more VARCHAR(255) NOT NULL;

3

Folgendes hat bei mir funktioniert:

ALTER TABLE vm_list CHANGE `vm_notes]` vm_notes VARCHAR(255); 

Query OK, 0 rows affected (0.01 sec) 
Records: 0  Duplicates: 0  Warnings: 0

Ja, ich habe dort irgendwie eine Spalte mit dem Namen "vm_notes]".

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.