2010-11-04 45 views
27

Tôi đang làm việc trên cơ sở dữ liệu. Trên hầu hết các bảng, thứ tự cột không phải là thứ tôi mong đợi và tôi muốn thay đổi nó (tôi có quyền). Ví dụ: cột id của primary_key hiếm khi là cột đầu tiên!Cách dễ dàng để sắp xếp lại các cột?

Có phương pháp di chuyển dễ dàng các cột bằng phpMyAdmin không?

Trả lời

54

Sử dụng câu lệnh ALTER TABLE ... MODIFY COLUMN.

ALTER TABLE table_name MODIFY COLUMN misplaced_column INT(11) AFTER other_column; 
+0

tôi có cần thông tin loại col không? - INT (11) – Haroldo

+1

Có, bạn cần phải xác định loại cột –

+0

hoạt động một nét duyên dáng, cảm ơn. – Haroldo

1

cách tiếp cận khác là:

#CREATE TABLE original (
# id INT 
# name TEXT 
# etc... 
#); 

CREATE TABLE temp (
    name TEXT 
    id INT 
    etc... 
); 

INSERT INTO temp SELECT name, id FROM original; 

DROP TABLE original; 

RENAME TABLE temp TO original; 
+0

bất kỳ lợi thế này? trông giống như một việc vặt ... – Haroldo

+0

Chỉ khi bạn muốn thực hiện các sửa đổi khác, chẳng hạn như loại, tên, thứ tự vv, tất cả trong một lần – Petah

+0

Tại sao bạn sao chép tất cả dữ liệu của bạn xung quanh như thế này? Khi bạn không cần? Nó không hiệu quả và bạn chỉ yêu cầu rắc rối. Ví dụ: –

4
ALTER TABLE `table` 
CHANGE COLUMN `field` `field` 
INT(11) AFTER `field2`; 
6

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;

+2

Điều này là hoàn hảo và thậm chí cho phép chuyển động của cột 'datetime'. Cảm ơn @ zahid9i –

5

Vì bạn đề cập đến phpMyAdmin, hiện tại có một cách để sắp xếp lại các cột trong phiên bản mới nhất (4.0 trở lên).

Chuyển đến chế độ xem "Cấu trúc" cho bảng, nhấp vào nút Chỉnh sửa (hoặc Thay đổi) trên trường thích hợp, sau đó trong "Di chuyển cột", chọn nơi bạn muốn trường đi.

+0

Không có tùy chọn như vậy. – Foreever

+0

@Bạn đang sử dụng phiên bản nào? – DisgruntledGoat

+0

Thông tin phiên bản: 3.4.10.1deb1 – Foreever

0

SQL Maestro cho MySQL cung cấp các công cụ để sắp xếp lại các trường cũng như với GUI không may là nó không phải là kéo và thả.

  1. mở bảng xem
  2. mở tab Properties
  3. lĩnh vực Bấm Sắp xếp lại từ thanh bên
  4. Bấm vào trường bạn muốn cảm động và sau đó nhấp vào lên hoặc xuống mũi tên màu xanh lá cây
  5. Bấm OK để nộp cập nhật cơ sở dữ liệu

Có thể có các chương trình và tiện ích khác để thực hiện việc này. Tôi tìm thấy chủ đề này từ một tìm kiếm vì vậy tôi nghĩ rằng tôi sẽ chia sẻ những gì tôi tìm thấy cho người khác.

2

Trong phpMyAdmin phiên bản 3.5.5, chuyển đến tab "Duyệt" và kéo các cột đến vị trí ưa thích của bạn để sắp xếp lại (ví dụ: nếu bạn có các cột có tên A, B, C, tất cả những gì bạn cần làm là kéo cột C giữa A và B để sắp xếp lại nó như A, C, B).

0

Dễ phương pháp cho các phiên bản mới hơn:

  1. Mở bảng bạn muốn sắp xếp lại.
  2. Chuyển đến tab cấu trúc.
  3. Liên kết chọn cột di chuyển.
  4. Sắp xếp lại các cột như bạn muốn.
Các vấn đề liên quan