2015-05-17 14 views
29

Tôi cố gắng để đổi tên một cột trong MySQL máy chủ cộng đồng 5.5.27 sử dụng biểu thức SQL này:Đổi tên một cột trong MySQL

ALTER TABLE table_name RENAME COLUMN old_col_name TO new_col_name; 

Tôi cũng đã cố gắng

ALTER TABLE table_name RENAME old_col_name TO new_col_name; 

Nhưng nó nói:

Error: check the Manual that corresponds to your MySQL server version

+0

thể trùng lặp của [Làm thế nào để đổi tên một cột bảng trong MySQL] (http://stackoverflow.com/questions/4002340/how-to-rename-a-table-column-in-mysql) –

Trả lời

54

Sử dụng truy vấn sau:

ALTER TABLE tableName CHANGE `oldcolname` `newcolname` datatype(length); 

Chức năng RENAME được sử dụng trong cơ sở dữ liệu Oracle.

ALTER TABLE tableName RENAME COLUMN "oldcolname" TO "newcolname" datatype(length); 

Thông báo backticks sử dụng cho MySQL, trong khi dấu ngoặc kép được sử dụng cho các cú pháp của Oracle

+0

Can bạn có các cột có cùng tên - hoặc tại sao kiểu dữ liệu phải được chỉ định? – Lealo

+3

@Lealo Khi lệnh nói, 'CHANGE' thay đổi cột trên bảng và loại của nó. Trạng thái tài liệu MYSQL: 'Các thuộc tính có trong định nghĩa gốc nhưng không được chỉ định cho định nghĩa mới không được chuyển tiếp.'. Có nghĩa là bạn phải xác định các định nghĩa bảng hoặc chúng sẽ không được sử dụng cho cột đó. Nếu bạn chỉ muốn thay đổi kiểu dữ liệu của một cột, chỉ cần bỏ qua các dấu ngoặc kép 'newcolname' –

+3

là làm cho tôi một lỗi cú pháp –

16

Trong phiên bản Server: 5.6.34 MySQL Community Server

ALTER TABLE table_name 
CHANGE COLUMN old_column_name new_column_name data_type; 
+1

hoặc sử dụng các lệnh DROP và ADD riêng biệt. – hrabinowitz

+7

tuyệt đối không sử dụng DROP và ADD.bạn sẽ mất tất cả dữ liệu bằng cách thực hiện việc này – tomazahlin

6

từ MySQL 5,7 Reference Manual

Cú pháp

ALTER TABLE t1 CHANGE a b DATATYPE;

ví dụ: cho khách hàng TABLE có COLUMN customer_name, customer_street, customercity

và chúng tôi muốn thay đổi customercity ĐẾN customer_city

alter table customer change customercity customer_city VARCHAR(225); 
Các vấn đề liên quan