ALTER TABLE - Đổi tên một cột


102

Điều này là lái xe cho tôi hạt!

Tôi muốn đổi tên một cột từ read-more thành read_more trong bảng blog của mình

Tôi đã thử tất cả điều này:

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

Và tôi luôn luôn có được điều này!

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

Tôi đang sử dụng MySQL 5.5

Câu trả lời:


139

Cú pháp hợp lệ gần với lần thử thứ hai của bạn, nhưng bạn cần phải thoát các tên cột bằng backticks không có dấu ngoặc đơn:

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;

Truy vấn được đề cập ở trên là chính xác và không cần sử dụng từ khóa "cột" và trích dẫn xung quanh tên bảng và tên cột nếu bạn đang sử dụng cơ sở dữ liệu mysql:

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

3

Đây là những gì làm việc cho tôi:

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

Có, bằng cách nào đó tôi có một cột có tên "vm_notes]" trong đó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.