ALTER TABLE - เปลี่ยนชื่อคอลัมน์


102

นี่คือการขับรถฉันถั่ว!

ฉันต้องการเปลี่ยนชื่อคอลัมน์จาก read-more เป็น read_more ในตารางบล็อกของฉัน

ฉันลองทั้งหมดนี้:

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

และฉันได้รับสิ่งนี้เสมอ!

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

ฉันใช้ MySQL 5.5

คำตอบ:


139

ไวยากรณ์ที่ถูกต้องใกล้เคียงกับการลองครั้งที่สองของคุณ แต่คุณต้องหลีกเลี่ยงชื่อคอลัมน์ด้วย backticks ที่ไม่มีเครื่องหมายคำพูดเดี่ยว:

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;

แบบสอบถามดังกล่าวข้างต้นถูกต้องและไม่จำเป็นต้องใช้คำหลัก "column" และเครื่องหมายคำพูดรอบ ๆ ชื่อตารางและคอลัมน์หากคุณใช้ฐานข้อมูล mysql:

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

3

นี่คือสิ่งที่ทำงานสำหรับฉัน:

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

ใช่ฉันมีคอลัมน์ชื่อ "vm_notes]" อยู่ในนั้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.