ALTER TABLE - Ganti nama kolom

102

Ini membuatku gila!

Saya ingin mengganti nama kolom dari read-more menjadi read_more di tabel blog saya

Saya mencoba semua ini:

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

Dan saya selalu mendapatkan ini!

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

Saya menggunakan MySQL 5.5

Bojan
sumber

Jawaban:

139

Sintaks yang valid dekat dengan percobaan kedua Anda, tetapi Anda harus keluar dari nama kolom dengan backticks bukan dengan tanda kutip tunggal:

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

Kueri yang disebutkan di atas benar dan tidak perlu menggunakan kata kunci "kolom" dan mengutip di sekitar nama tabel dan kolom jika Anda menggunakan database mysql:

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

Inilah yang bekerja untuk saya:

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

Ya, entah bagaimana saya mendapat kolom bernama "vm_notes]" di sana.

Boris Epstein
sumber