2011-09-20 40 views
6

Tôi có một loạt các bảng lớn không có khóa chính. (Đừng hỏi tôi tại sao) Tôi sẽ nối thêm một trường 'id' vào mỗi bảng. Nó sẽ là một loại số nguyên. Sau đó, tôi sẽ quảng bá nó tới một chỉ số không giá trị, duy nhất, và một khóa chính.Thêm khóa chính vào bảng MySQL và tự động điền vào nó

Câu hỏi của tôi: Có cách nào trong MySQL (5 ish) Chúng tôi có khoảng một trăm bảng và lớn nhất trong số đó có hơn 1 triệu bản ghi. Sau khi tạo cột 'id' mới, có cách nào để chèn lấp MySQL (tức là, thêm giá trị vào các bản ghi hiện có) trường 'id' không? Tôi thà có thể làm điều này tất cả trong MySQL. Nếu không, tôi sẽ phải viết một kịch bản PHP để điền các bản ghi hiện có.

Thanx, Don!

Trả lời

12

Nếu bạn làm một

ALTER TABLE table1 ADD COLUMN id INTEGER NOT NULL auto_increment PRIMARY KEY 

Nó sẽ tự động cư bảng của bạn với một khóa chính auto_incrementing.

Có thể mất một lúc trên một chiếc bàn lớn.

+1

Không nhận ra rằng việc thêm PK tăng tự động sẽ trả về các hàng hiện có. Thật là tuyệt. Cảm ơn nhiều. –

Các vấn đề liên quan