2010-05-29 47 views
48

Tôi cần di chuyển vị trí của các cột hiện tại (để có khả năng hiển thị tốt hơn).Làm cách nào để sắp xếp lại các cột Mysql?

Làm cách nào để thực hiện điều này mà không ảnh hưởng đến dữ liệu?

+6

Không bị lừa đảo: thứ nhất là về trao đổi dữ liệu, thứ hai là về "sqlyog". –

Trả lời

48

Cách duy nhất tôi biết là thay đổi cột. Trước tiên, bạn sẽ trích xuất định nghĩa cột của bạn sử dụng SHOW CREATE TABLE và ban hành một ALTER TABLE:

ALTER TABLE foo 
CHANGE COLUMN bar 
bar COLUMN_DEFINITION_HERE 
FIRST; 

Hoặc nếu bạn muốn nó sau một cột khác chắc chắn:

... AFTER OTHER_COLUMN; 
+5

Hoặc '... SAU KHI OTHER_COLUMN' –

+1

Tôi gặp sự cố với' BEFORE' thay vì tôi đã sử dụng 'FIRST' –

+7

Không có TRƯỚC KHI trong cú pháp MySQL [link] (http://dev.mysql.com/doc/refman/5.7 /en/alter-table.html), chỉ SAU KHI và FIRST – DocGono

41

Modify cũng làm việc. Có một cái nhìn:

ALTER TABLE foo MODIFY bar bartype AFTER baz; 
+2

Thực ra đây là câu trả lời được chấp nhận. – AlexioVay

+0

Có ai có thể giải thích sự khác biệt giữa CHANGE COLUMN và MODIFY không? MODIFY có hoạt động trọng lượng nhẹ hơn không? Nó không khóa bàn? Cảm ơn. CẬP NHẬT: Có vẻ như CHANGE và MODIFY là các từ đồng nghĩa, trong đó MODIFY được thêm vào cho người dùng Oracle. https://dev.mysql.com/doc/refman/5.7/en/alter-table.html – jjohn

1

Dưới đây là truy vấn sql
ALTER TABLE tên_bảng ĐIỀU CHỈNH CỘT misplaced_column Cột nét SAU other_column; Ở đây trong Định nghĩa cột là định nghĩa cột đầy đủ. Để xem định nghĩa cột nếu bạn đang sử dụng phpmyadmin, hãy nhấp vào tab cấu trúc. Sau đó nhấp vào liên kết thay đổi trên cột mong muốn. Sau đó, withour modifyig bất cứ điều gì nhấp vào lưu. Nó sẽ cho bạn thấy sql. Sao chép sql và chỉ cần thêm * SAU khác_column * ở cuối. Nó sẽ là tất cả.

Nếu bạn muốn đưa * misplaced_column * đến vị trí đầu tiên thì ALTER TABLE table_name MODIFY COLUMN misplaced_column Định nghĩa cột FIRST;

Tuy nhiên, Dường như đây là câu hỏi trùng lặp.

4
  1. Alter Table table_name sửa đổi column_name column_datatype trước;
  2. Alter Table table_name sửa đổi column_name column_datatype Sau other_column_name;
Các vấn đề liên quan