Tôi có một bảng có 38.000 bản ghi, nhưng không có bất kỳ cột tăng tự động nào như ID
.
Bây giờ tôi phải thêm một cột ID
, và tôi tự hỏi có thể có rắc rối không?Nhân đôi việc thêm một ID mới (tăng tự động) sau khi bảng tồn tại
Trả lời
Bạn có vấn đề với việc thay đổi định nghĩa cho bất kỳ trường nào là thay đổi là "phá hoại". Cách tốt nhất là xử lý các thay đổi như thế này khi di chuyển dữ liệu. Tôi đã không làm điều này với MySQL, nhưng đã phải thêm tự động đánh số vào SQL Server. Ý tưởng cơ bản là như nhau.
Kiểm tra tài liệu, vì MySQL có thể có cơ chế để thêm tăng tự động mà không cần đặt lại trường. Nếu vậy, thực hiện nó thông qua SQL sẽ giải quyết vấn đề. Nói chung, tôi khuyên bạn không nên làm những loại thay đổi này một cách trực quan, với một công cụ, vì hầu hết các công cụ đều rất phá hoại trong quá trình methdology của chúng.
Chỉ cần thêm trường mới với phpMyAdmin và mọi đường nối OK. Oredering không được thực hiện tốt, nhưng đó không phải là quan trọng. Cảm ơn – Bobo
"có thể có sự cố không?"
Có thể có sự cố khi chỉ chèn bản ghi. Tuy nhiên ...
Nói chung, việc thêm trường mới thường là khá an toàn để thực hiện, cho dù đó là cột tự động tăng hay không. Nó thay đổi hoặc xóa các cột có nhiều khả năng gây ra các vấn đề nếu bạn không chắc chắn về tất cả các phụ thuộc.
Để an toàn, tuy nhiên, trước tiên tôi sẽ thử trên phiên bản (thử nghiệm) và chạy (các) ứng dụng của bạn trước phiên bản thử nghiệm, chỉ để an toàn. Đó là thực hành tốt để sử dụng một môi trường thử nghiệm không có vấn đề gì anyway.
Bạn có thể cụ thể hơn về loại rắc rối bạn đang lo lắng không?
Bạn có thể thêm làm điều đó mà không gặp vấn đề chỉ nếu bảng của bạn không có mối quan hệ với người khác.
Bạn phải xóa khóa chính cũ và tải lên bảng phù hợp (có thể thêm chỉ mục duy nhất trên khóa chính cũ).
Tiến hành như thế:
Thực hiện một bãi chứa của cơ sở dữ liệu của bạn
Tháo khóa chính như thế
ALTER TABLE XXX DROP PRIMARY KEY
- Thêm cột mới như thế
ALTER TABLE XXX add column Id INT NOT NULL AUTO_INCREMENT FIRST, ADD primary KEY Id(Id)
Bảng sẽ được xem xét và cập nhật AutoInc.
Đây là giải pháp mà tôi đã cố gắng với MySQL Workbench:
ALTER TABLE `tableName` CHANGE COLUMN `id` `id` INT(11) NOT NULL AUTO_INCREMENT ;
Tôi không biết nếu điều này là đúng cách, nhưng tôi đã không nhận thấy bất kỳ vấn đề trong EE Application Java của tôi được nêu ra.
Tôi nghĩ id là một phần của khóa nếu không nó sẽ gây ra lỗi. – siddhusingh
này sẽ thêm một increment ID tự động để bảng MySQL của bạn:
ALTER TABLE `your_table_name` ADD `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;
Tùy thuộc vào số lượng dữ liệu trên bàn của bạn có thể mất một vài phút để hoàn thành.
Bạn có thể cần phải thêm nó như là khóa chính đầu tiên trước khi bạn có thể làm cho nó như là tự động tăng lĩnh vực
Bạn có thể nhìn vào ví dụ này
ALTER TABLE `category`
ADD PRIMARY KEY (`cat_id`);
ALTER TABLE `category`
MODIFY `cat_id` int(11) NOT NULL AUTO_INCREMENT;
tôi làm việc với dữ liệu rất lớn và đã có một id cột đầy với NULLS. Tôi đã chọn để chạy SQL sau đây để điền vào với số ... sau đó tôi đặt cột id là khóa chính của tôi.
set @row = 0;
UPDATE philadelphia.msg_geo_sal SET id = @row := @row + 1;
- 1. Rails tự động gán id đó đã tồn tại
- 2. Oracle - Chèn hàng mới có ID gia tăng tự động
- 3. jQueryMobile: làm mới sau khi tự động thêm hàng vào bảng có cột chuyển đổi
- 4. Trường id tự động gia tăng theo một
- 5. Bảng không tồn tại sau CREATE TABLE
- 6. Làm thế nào để cập nhật bảng với activeandroid sau khi thêm một cột mới
- 7. Bảng CDC không hoạt động sau khi thêm cột mới vào bảng nguồn
- 8. Sự cố với cột "id" được tăng tự động
- 9. Tại sao tăng tự động MySQL tăng lên khi chèn không thành công?
- 10. Emacs tự động thêm một dòng mới ngay cả sau khi thay đổi .emacs
- 11. tăng tự động mysql ID không bắt đầu từ 0
- 12. Tăng gấp đôi một số - chuyển trái vs nhân
- 13. ID đối tượng tự động tăng trong dữ liệu lõi?
- 14. Làm thế nào để tự động thêm một cột mới vào một bảng HTML
- 15. TFS 2010 - Mục công việc mới - tự động chọn Đã gán cho bằng Id của bạn
- 16. cho vòng lặp, tăng thêm gấp đôi
- 17. jQuery selector không cập nhật sau khi tự động thêm các yếu tố mới
- 18. Tại sao việc thêm id = "ad_a" vào thành phần HTML đôi khi làm cho nó ẩn trong Chrome và Firefox?
- 19. Symfony2: lấy id của đối tượng đã tồn tại
- 20. ID tăng tự động trong cơ sở dữ liệu H2
- 21. Máy chủ SQL thêm tự động tăng khóa chính vào bảng hiện có
- 22. Oracle tự động thêm ngày hiện tại
- 23. PHP mySQL - Chèn bản ghi mới vào bảng với tự động tăng trên khóa chính
- 24. PHP/MySQL Nhận giá trị được tự động tăng lên sau khi chèn
- 25. Đôi khi, video HTML không tự động phát sau khi tải
- 26. Tại sao JPA persist() không tạo ra ID chính tăng tự động?
- 27. Nhận bảng ID sau khi chèn với ColdFusion và MySQL
- 28. Chèn khóa chính được tăng tự động vào bảng Access
- 29. Làm mới LinearLayout sau khi thêm một chế độ xem
- 30. Tại sao SQL Server hoạt động nhanh hơn khi bạn lập chỉ mục một bảng sau khi điền vào bảng?
Đã có cột ID số nguyên xác định duy nhất các hàng của bạn chưa? – BoltClock